From c6871cef32d7f7c30b28253cbca18ba071ffebbe Mon Sep 17 00:00:00 2001 From: mame Date: Wed, 28 Apr 2010 14:53:58 +0000 Subject: [PATCH] * lib/thwait.rb: revise rdoc. a patch from Roger Pack in [ruby-core:27362]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/thwait.rb | 44 +++++++++----------------------------------- 2 files changed, 14 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index e5ea44c824..7ff4007373 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Apr 28 23:53:15 2010 Yusuke Endoh + + * lib/thwait.rb: revise rdoc. a patch from Roger Pack in + [ruby-core:27362]. + Wed Apr 28 23:21:42 2010 NARUSE, Yui * ext/json: Update to JSON 1.4.2. diff --git a/lib/thwait.rb b/lib/thwait.rb index 6785431c4d..e13ae074d5 100644 --- a/lib/thwait.rb +++ b/lib/thwait.rb @@ -3,37 +3,6 @@ # $Release Version: 0.9 $ # $Revision: 1.3 $ # by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd.) -# -# -- -# feature: -# provides synchronization for multiple threads. -# -# class methods: -# * ThreadsWait.all_waits(thread1,...) -# waits until all of specified threads are terminated. -# if a block is supplied for the method, evaluates it for -# each thread termination. -# * th = ThreadsWait.new(thread1,...) -# creates synchronization object, specifying thread(s) to wait. -# -# methods: -# * th.threads -# list threads to be synchronized -# * th.empty? -# is there any thread to be synchronized. -# * th.finished? -# is there already terminated thread. -# * th.join(thread1,...) -# wait for specified thread(s). -# * th.join_nowait(threa1,...) -# specifies thread(s) to wait. non-blocking. -# * th.next_wait -# waits until any of specified threads is terminated. -# * th.all_waits -# waits until all of specified threads are terminated. -# if a block is supplied for the method, evaluates it for -# each thread termination. -# require "thread.rb" require "e2mmap.rb" @@ -50,6 +19,11 @@ require "e2mmap.rb" # STDERR.puts "Thread #{t} has terminated." # end # +# +# th = ThreadsWait.new(thread1,...) +# th.next_wait # next one to be done +# +# class ThreadsWait RCS_ID='-$Id: thwait.rb,v 1.3 1998/06/26 03:19:34 keiju Exp keiju $-' @@ -59,7 +33,7 @@ class ThreadsWait # # Waits until all specified threads have terminated. If a block is provided, - # it is executed for each thread termination. + # it is executed for each thread as they terminate. # def ThreadsWait.all_waits(*threads) # :yield: thread tw = ThreadsWait.new(*threads) @@ -82,18 +56,18 @@ class ThreadsWait join_nowait(*threads) unless threads.empty? end - # Returns the array of threads in the wait queue. + # Returns the array of threads that have not terminated yet. attr :threads # - # Returns +true+ if there are no threads to be synchronized. + # Returns +true+ if there are no threads in the pool still running. # def empty? @threads.empty? end # - # Returns +true+ if any thread has terminated. + # Returns +true+ if any thread has terminated and is ready to be collected. # def finished? !@wait_queue.empty?