General

Profile

ioquatix (Samuel Williams)

Issues

open closed Total
Assigned issues 15 110 125
Reported issues 24 120 144

Projects

Project Roles Registered on
Ruby Committer 09/19/2018

Activity

11/28/2025

09:33 AM Ruby Misc #21689: DevMeeting-2025-12-11
- [Feature #21717] Introduce `Fiber::Scheduler#process_fork` hook.
- Is it acceptable? https://github.com/ruby/ruby/pull/15342
- [Feature #21704] Expose `rb_process_status_new` to C extensions.
- Required for improved io_uring `proce...
ioquatix (Samuel Williams)

11/20/2025

10:48 PM Ruby Feature #21700: `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
This makes sense to me. However it might mean we need to return a slice (which IMHO is probably okay). The alternative is to expose the internal implementation and force the user to deal with all that shit. We should also document clearl... ioquatix (Samuel Williams)

11/17/2025

02:28 AM Ruby Bug #20907: Fiber scheduler does not correctly re-lock mutex if `Mutex#sleep` is interrupted.
Cross referencing: https://github.com/socketry/async/issues/424 ioquatix (Samuel Williams)

11/11/2025

07:40 AM Ruby Bug #21672: `IO::Buffer.new` does not check that flags are valid
Thanks, I'll review. IIRC, the flags provided can be advisory, e.g. a small buffer but use mapped memory. ioquatix (Samuel Williams)

10/20/2025

03:50 AM Ruby Feature #21642: Introduce `IO::ConnectionResetError` and `IO::BrokenPipeError` as standardized IO-level exceptions.
Thanks for your feedback. I understand your point and I think it makes sense.
"Connection Reset" and "Broken Pipe" have well defined meanings. On the face of it, I don't know what "CloseUnrecoverable" means. Is there a concept like this...
ioquatix (Samuel Williams)

10/19/2025

10:55 PM Ruby Feature #21642 (Open): Introduce `IO::ConnectionResetError` and `IO::BrokenPipeError` as standardized IO-level exceptions.
Currently, different IO implementations in Ruby raise inconsistent exception types when a connection is reset or broken.
For example:
```ruby
# Plain TCP socket:
socket.read_nonblock(1024)
# => Errno::ECONNRESET
# SSL socket:...
ioquatix (Samuel Williams)

10/09/2025

04:42 AM Ruby Bug #21633 (Open): A `rb_thread_call_without_gvl` loop can cause the fiber scheduler to ignore signals.
The gRPC gem calls `rb_thread_call_without_gvl` in a loop, and doesn't exit when interrupts are delivered if `Thread.handle_interrupt(::SignalException => :never)` is used by the scheduler to create a safe point for asynchronous signal h... ioquatix (Samuel Williams)

10/06/2025

10:17 PM Ruby Bug #19461: Time.local performance tanks in forked process (on macOS only?)
Just for reference, on the lastest macOS, the issue still appears:
```
% clang localtime_test.c
% ./a.out
Measuring localtime
In parent
monotonic = 0.002930000
cputime = 0.002454000
In child
monotonic = 0.553250000
...
ioquatix (Samuel Williams)

10/05/2025

11:25 AM Ruby Bug #21610: Use ec->interrupt_mask to prevent interrupts.
- Ruby 3.3 backport PR: https://github.com/ruby/ruby/pull/14735
- Ruby 3.2 backport PR: https://github.com/ruby/ruby/pull/14737
Hope this helps!
ioquatix (Samuel Williams)

09/18/2025

03:28 AM Ruby Bug #21610: Use ec->interrupt_mask to prevent interrupts.
A slightly different change may be required for 3.3 and 3.2 backports: https://github.com/ruby/ruby/commit/e900e9fc9ace5e36de5170c83df0f56167e4c8a9 ioquatix (Samuel Williams)

Also available in: Atom