зеркало из https://github.com/github/ruby.git
* lib/thread.rb (ConditionVariable#wait): add timeout argument.
[ruby-talk:346154] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
8c3926aea0
Коммит
7728a17a27
|
@ -1,3 +1,8 @@
|
||||||
|
Wed Sep 23 22:58:57 2009 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* lib/thread.rb (ConditionVariable#wait): add timeout argument.
|
||||||
|
[ruby-talk:346154]
|
||||||
|
|
||||||
Wed Sep 23 21:25:20 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Wed Sep 23 21:25:20 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* ext/bigdecimal/lib/bigdecimal/math.rb (atan): refined.
|
* ext/bigdecimal/lib/bigdecimal/math.rb (atan): refined.
|
||||||
|
|
4
NEWS
4
NEWS
|
@ -230,6 +230,10 @@ with all sufficient information, see the ChangeLog file.
|
||||||
* incompatible changes:
|
* incompatible changes:
|
||||||
* Time.parse raises ArgumentError when no date information.
|
* Time.parse raises ArgumentError when no date information.
|
||||||
|
|
||||||
|
* thread
|
||||||
|
* extended method:
|
||||||
|
* ConditionVariable#wait takes timeout argument.
|
||||||
|
|
||||||
* securerandom
|
* securerandom
|
||||||
* new methods:
|
* new methods:
|
||||||
* SecureRandom.urlsafe_base64
|
* SecureRandom.urlsafe_base64
|
||||||
|
|
|
@ -59,13 +59,16 @@ class ConditionVariable
|
||||||
#
|
#
|
||||||
# Releases the lock held in +mutex+ and waits; reacquires the lock on wakeup.
|
# Releases the lock held in +mutex+ and waits; reacquires the lock on wakeup.
|
||||||
#
|
#
|
||||||
def wait(mutex)
|
# If +timeout+ is given, this method returns after +timeout+ seconds passed,
|
||||||
|
# even if no other thread doesn't signal.
|
||||||
|
#
|
||||||
|
def wait(mutex, timeout=nil)
|
||||||
begin
|
begin
|
||||||
# TODO: mutex should not be used
|
# TODO: mutex should not be used
|
||||||
@waiters_mutex.synchronize do
|
@waiters_mutex.synchronize do
|
||||||
@waiters.push(Thread.current)
|
@waiters.push(Thread.current)
|
||||||
end
|
end
|
||||||
mutex.sleep
|
mutex.sleep timeout
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче