* 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:
akr 2009-09-23 14:01:07 +00:00
Родитель 8c3926aea0
Коммит 7728a17a27
3 изменённых файлов: 14 добавлений и 2 удалений

Просмотреть файл

@ -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
Просмотреть файл

@ -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