[#102652] [Ruby master Bug#17664] Behavior of sockets changed in Ruby 3.0 to non-blocking — ciconia@...
Issue #17664 has been reported by ciconia (Sharon Rosner).
23 messages
2021/02/28
[ruby-core:102466] [Ruby master Feature#17470] Introduce non-blocking `Timeout.timeout`
From:
samuel@...
Date:
2021-02-12 02:05:04 UTC
List:
ruby-core #102466
Issue #17470 has been updated by ioquatix (Samuel Williams).
@jsc I tried your example but it seems to work fine?
```
def test_timeout_on_main_fiber
message = nil
thread = Thread.new do
scheduler = Scheduler.new
Fiber.set_scheduler scheduler
Timeout.timeout(1) do
message = MESSAGE
end
end
thread.join
assert_equal MESSAGE, message
end
```
----------------------------------------
Feature #17470: Introduce non-blocking `Timeout.timeout`
https://bugs.ruby-lang.org/issues/17470#change-90354
* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
----------------------------------------
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: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>