General

Profile

ioquatix (Samuel Williams)

Issues

open closed Total
Assigned issues 21 115 136
Reported issues 26 124 150

Projects

Project Roles Registered on
Ruby Committer 09/19/2018

Activity

07/02/2026

06:19 AM Ruby Feature #21957: Introduce `Enumerable#close` to free internal resources.
@mame If we decide to use `Fiber#kill` for terminating the fiber (which seems reasonable), it seems bad that it may not return to the point that `rb_fiber_kill` was invoked. WDYT?
It would be the same issue as discussed in https://bugs....
ioquatix (Samuel Williams)
06:18 AM Ruby Feature #21957: Introduce `Enumerable#close` to free internal resources.
Possible implementation: https://github.com/ruby/ruby/pull/17624 ioquatix (Samuel Williams)
06:15 AM Ruby Misc #22107: DevMeeting-2026-07-09
- [Feature #22138] Add `RB_NOGVL_PENDING_INTERRUPT_FAIL` flag for `rb_nogvl`.
- Additive change to protect against race condition. Is it acceptable?
- [Bug #22133] Ruby's default SIGINT handling ignores `Thread.handle_interrupt` maskin...
ioquatix (Samuel Williams)

07/01/2026

11:24 PM Ruby Bug #20081: Transfered Fiber doesn't return to Fiber that started it
Okay, I spoke too soon, I think this clearly demonstrates the confusion:
```ruby
def event_loop
loop_fiber = Fiber.new do
task = Fiber.new do
puts "task"
end
# scheduler executes the task
task.transfer
puts "...
ioquatix (Samuel Williams)
10:54 PM Ruby Bug #20081: Transfered Fiber doesn't return to Fiber that started it
Actually, this behaviour isn't as bad as I thought it was:
```ruby
f1 = Fiber.new do
f2 = Fiber.new do
puts "f2"
end.transfer
puts "f1"
end.resume
f2
f1
```
I thought f2 would transfer back out to the main fiber, but it goe...
ioquatix (Samuel Williams)
10:45 PM Ruby Bug #20081: Transfered Fiber doesn't return to Fiber that started it
I think the crux of the issue here is that there is no way to do a final transfer (or raise that transfers) that goes back to a specific fiber, but it probably should be possible.
```ruby
fiber = Fiber.new do
# Do stuff

# Final t...
ioquatix (Samuel Williams)
09:22 AM Ruby Bug #20081: Transfered Fiber doesn't return to Fiber that started it
Possible fix: https://github.com/ruby/ruby/pull/17601 ioquatix (Samuel Williams)

06/30/2026

02:17 PM Ruby Feature #22138 (Open): Add `RB_NOGVL_PENDING_INTERRUPT_FAIL` flag for `rb_nogvl`.
Add a new flag, `RB_NOGVL_PENDING_INTERRUPT_FAIL`, to `rb_nogvl()`. When set, `rb_nogvl()` does not enter the blocking region (does not call the supplied function) if the current thread has *pending interrupts* — including interrupts tha... ioquatix (Samuel Williams)
01:39 PM Ruby Feature #21704: Expose `rb_process_status_for` to C extensions
Following up on my earlier comment, now that we have implemented `process_wait` across several backends (including the `io_uring` `waitid` path) and worked through the edge cases in practice. The implementation experience gives concrete ... ioquatix (Samuel Williams)

06/29/2026

12:50 AM Ruby Bug #22133 (Open): Ruby's default SIGINT handling ignores `Thread.handle_interrupt` masking.
Ruby's default SIGINT handling currently bypasses `Thread.handle_interrupt` masking. When a process receives SIGINT with the default Ruby handler installed, CRuby calls `rb_interrupt()` directly. That can raise `Interrupt` immediately in... ioquatix (Samuel Williams)

Also available in: Atom