General

Profile

ioquatix (Samuel Williams)

Issues

open closed Total
Assigned issues 18 115 133
Reported issues 24 124 148

Projects

Project Roles Registered on
Ruby Committer 09/19/2018

Activity

Today

05:13 AM Ruby Feature #21704: Expose rb_process_status_new to C extensions
@akr
> Why Process::Status object is created in such situations?
Because `Process::Status` represents either "the result of waitpid" or "errno of waitpid" and is used to transfer this information until it's finally consumed by the end ...
ioquatix (Samuel Williams)

03/25/2026

03:26 AM Ruby Bug #21964: Fiber stack acquire can expand unnecessarily
It's worth noting that this is similar to how it's currently handled in `io.c`: https://github.com/ruby/ruby/blob/4eab86efde9c98e8f51caeb95a0cf25acd7958f6/io.c#L1077-L1085 ioquatix (Samuel Williams)

03/24/2026

10:26 PM Ruby Bug #21964 (Closed): Fiber stack acquire can expand unnecessarily
In several common scenarios, the fiber stack allocator can choose to expand the fiber stack pool even when there are unreachable (effectively dead) fibers.
For example, the following program will eventually crash if GC does not run in...
ioquatix (Samuel Williams)

03/18/2026

10:51 PM Ruby Feature #21957 (Open): Introduce `Enumerable#close` to free internal resources.
In some cases, `Enumerable` has substantial internal state (e.g. Fiber) related to enumeration. There is currently no way to clear up this state besides garbage collection, which means that we can accumulate considerable garbage before c... ioquatix (Samuel Williams)

03/17/2026

09:17 AM Ruby Bug #21955 (Closed): `Fiber#transfer`: machine stack not released when fiber terminates, causing `FiberError: can't set a guard page`
When a fiber terminates (falls off the end of its block, or raises an unhandled exception) after being reached via `Fiber#transfer`, its machine stack is **not** returned to the fiber pool. The stack is only freed when the `Fiber` object... ioquatix (Samuel Williams)

03/12/2026

12:38 AM Ruby Feature #21700: `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
I've been using `IO::Buffer.map` on macOS without issues. It's still early days but I wonder why it was failing for you.
https://github.com/socketry/async-utilization/blob/main/lib/async/utilization/observer.rb
ioquatix (Samuel Williams)

03/10/2026

02:58 AM Ruby Bug #19017: Net::HTTP may block when attempting to reuse a persistent connection
I personally think `eof?` being blocking is extremely confusing.
I use this shim: https://github.com/socketry/io-stream/blob/main/lib/io/stream/shim/readable.rb#L11 to avoid blocking.
I also mentioned the issue here: https://bugs.ruby-...
ioquatix (Samuel Williams)

03/09/2026

02:33 AM Ruby Bug #21947: `Timeout.timeout` doesn't use `Timeout::ExitException` when Fiber scheduler is in use.
See <https://github.com/ruby/timeout/pull/97> for a proposed fix. ioquatix (Samuel Williams)
02:27 AM Ruby Bug #21947 (Closed): `Timeout.timeout` doesn't use `Timeout::ExitException` when Fiber scheduler is in use.
The following example executes successfully after 7 seconds instead of timing out after 2.
```ruby
require 'async'
require 'net/http'
start = Time.now
Sync do
Timeout.timeout 2 do
Net::HTTP.get(URI 'https://httpbin.org...
ioquatix (Samuel Williams)

02/16/2026

06:46 AM Ruby Feature #18035: Introduce general model/semantic for immutability.
Another example where immutability as a concept is useful - configurations that span across fibers and threads: https://github.com/ruby-i18n/i18n/issues/723
In general, it seems like immutability for `Fiber[]` values is a good idea.
ioquatix (Samuel Williams)

Also available in: Atom