From: eregontp@... Date: 2020-12-27T16:24:57+00:00 Subject: [ruby-core:101750] [Ruby master Bug#17470] Introduce non-blocking `Timeout.timeout` Issue #17470 has been updated by Eregon (Benoit Daloze). ioquatix (Samuel Williams) wrote in #note-2: > Actually, that's not necessarily true, even for the current implementation, see `getaddrinfo` for example. You're completely evading my question :p Could you answer it please? That's one of the very rare cases, maybe even the only case in core methods that cannot be interrupted by Thread#raise. Is the idea to simply give up on interrupting anything that's not handled by the scheduler if there is a `Fiber.scheduler`, or something better? That seems too incompatible to me. I think a new API to interrupt only scheduler things might make more sense (related to #17363). ---------------------------------------- Bug #17470: Introduce non-blocking `Timeout.timeout` https://bugs.ruby-lang.org/issues/17470#change-89574 * Author: ioquatix (Samuel Williams) * Status: Open * Priority: Normal * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- In this bug report, user complained that `Timeout.timeout` does not work correctly with scheduler: https://github.com/socketry/async-io/issues/43 We should introduce non-blocking timeout. I propose the following: ``` rb_fiber_scheduler_with_timeout(VALUE scheduler, VALUE timeout, VALUE block) ``` We can directly modify `Timeout.timeout` to invoke this hook. -- https://bugs.ruby-lang.org/ Unsubscribe: