[#108552] [Ruby master Bug#18782] Race conditions in autoload when loading the same feature with multiple threads. — "ioquatix (Samuel Williams)" <noreply@...>
Issue #18782 has been reported by ioquatix (Samuel Williams).
11 messages
2022/05/14
[ruby-core:108516] [Ruby master Feature#18774] Add Queue#pop(timeout:)
From:
"byroot (Jean Boussier)" <noreply@...>
Date:
2022-05-11 19:51:35 UTC
List:
ruby-core #108516
Issue #18774 has been updated by byroot (Jean Boussier). In https://bugs.ruby-lang.org/issues/17363 there was some discussion on what the return value or exception should be when timeout is reached, and it seems to be part of why the discussion stalled. @ko1 said: > return nil -> can't recognize returned value Which I somewhat agree with, however `pop` already returns nil when called in "non_block" mode, or when the Queue is closed, so I think returning `nil` while not so great, would be the most consistent behavior. ---------------------------------------- Feature #18774: Add Queue#pop(timeout:) https://bugs.ruby-lang.org/issues/18774#change-97557 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal ---------------------------------------- This has been mentioned many times but somehow was never added. It is useful for many different use cases: * Implementing Timeout#timeout without needing to create a Thread per call which is very inefficient (especially when the timeout is not hit): https://github.com/ruby/timeout/pull/14#issuecomment-1123380880 * @jeremyevans0 I would love a Queue#pop :timeout argument. It would simplify the mutex/condition variable approach currently used for Sequel's connection pool. * @byroot Same. I wanted it so many times * https://bugs.ruby-lang.org/issues/17363 * https://spin.atomicobject.com/2014/07/07/ruby-queue-pop-timeout/ + https://spin.atomicobject.com/2017/06/28/queue-pop-with-timeout-fixed/ * More in my email searches but this seems already plenty I think it should be a keyword argument for clarity, and so there is no confusion with the existing optional argument `non_block=false`. -- 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>