I wasn't aware of those old issues. I'll take a look, thanks! I reverted the commit because of issues with a `Monitor` test in CI. I thought it was related to this change, but the test kept failing even after the revert. It turns out it...luke-gru (Luke Gruber)
I'm confused about what should happen. Shouldn't it return roughly after 1 second instead of 10 seconds? I'll look into the sleep issue with `RUBY_MN_THREADS=1`, but I can't reproduce the deadlock or segfault with a more recent commit (a...luke-gru (Luke Gruber)
I did some benchmarking based on the updated solution (https://github.com/ruby/ruby/pull/15840). I've attached Puma benchmark results that I got using the PR from the previous post (d7ef5ecc9b) vs that PR's base commit (ad6b85450d). The ...luke-gru (Luke Gruber)
Hi, There's a problem with Ruby's scheduler that I want to solve. # The Problem Since Ruby schedules threads using round-robin inside a Ractor, threads doing I/O after only running for a short time are punished. Once the I/O fin...luke-gru (Luke Gruber)
Continually locking a mutex `m` can lead to starvation if all other threads are on the waitq of `m`. Let `T` be the thread that keeps on acquiring mutex `m` in a loop. Iteration 1: 1) `T` locks mutex `m` 2) All other threads at...luke-gru (Luke Gruber)
Here's my understanding of the issue after debugging it for a bit. This is based on `mame`'s code: A: main thread B: other thread 1. `A` calls `require` on `"./target"`, which locks the thread shield (TS) for the `"./target"` feature, ...luke-gru (Luke Gruber)
I'm with John that I think this is very promising but should not be introduced in ruby 4.0. It needs more testing to make sure it's working correctly and it needs more benchmarks for more realistic workloads. We can't do that in 2 weeks....luke-gru (Luke Gruber)