👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into several parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Bitmasks, Ruby Threads and Interrupts, oh my! (Concurrent, colorless Ruby) When good threads go bad: Concurrent, colorless Ruby Threa...| jpcamara.com
Your code using the /o modifier Source: wikipedia Hi there! Do you like Regex? Do you like performance? Do you like creating confounding bugs for yourself rooted in the mechanics of the Ruby VM itself? If you said yes to all of the above, have I got a feature for you! But first, let’s start with a story. The cliffs of insanity I was recently reviewing some code, and part of the functionality was about matching.| jpcamara.com
There is a central macro in CRuby, RUBY_VM_CHECK_INTS, which is a very hot path for the Ruby runtime. It’s an important part of how threads are managed, and it’s called constantly. I was curious just how often it was called, and it turned out CRuby comes with some handy debugging functionality for just this scenario. Inside of debug_counter.h, I changed #define USE_DEBUG_COUNTER 0 to #define USE_DEBUG_COUNTER 1 and added this line later in that file: RB_DEBUG_COUNTER(rb_vm_check_ints) The...| JP Camara
👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Interrupting Threads: Concurrent, colorless Ruby Thread and its MaNy friends: Concurrent, colorless Ruby Fibers: Concurrent, colorles...| JP Camara
👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Interrupting Threads: Concurrent, colorless Ruby Thread and its MaNy friends: Concurrent, colorless Ruby Fibers: Concurrent, colorless...| JP Camara
👋🏼 This is a series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Interrupting Threads: Concurrent, colorless Ruby Thread and its MaNy friends: Concurrent, colorless Ruby Fibers: Concurrent, colorless Ruby ...| JP Camara
👋🏼 This is a series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Interrupting Threads: Concurrent, colorless Ruby Thread and its MaNy friends: Concurrent, colorless Ruby Fibers: Concurrent, colorless Ruby...| JP Camara
👋🏼 This is a series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Interrupting Threads: Concurrent, colorless Ruby Thread and its MaNy friends: Concurrent, colorless Ruby Fibers: Concurrent, colorless Ruby ...| JP Camara