GRAYBYTE WORDPRESS FILE MANAGER1983

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby18/lib64/ruby/1.8/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby18/lib64/ruby/1.8//thwait.rb
#
#   thwait.rb - thread synchronization class
#   	$Release Version: 0.9 $
#   	$Revision: 1.3 $
#   	$Date: 1998/06/26 03:19:34 $
#   	by Keiju ISHITSUKA(Nihpon 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"

#
# This class watches for termination of multiple threads.  Basic functionality
# (wait until specified threads have terminated) can be accessed through the
# class method ThreadsWait::all_waits.  Finer control can be gained using
# instance methods.
#
# Example:
#
#   ThreadsWait.all_wait(thr1, thr2, ...) do |t|
#     STDERR.puts "Thread #{t} has terminated."
#   end
#
class ThreadsWait
  RCS_ID='-$Id: thwait.rb,v 1.3 1998/06/26 03:19:34 keiju Exp keiju $-'
  
  Exception2MessageMapper.extend_to(binding)
  def_exception("ErrNoWaitingThread", "No threads for waiting.")
  def_exception("ErrNoFinishedThread", "No finished threads.")
  
  #
  # Waits until all specified threads have terminated.  If a block is provided,
  # it is executed for each thread termination.
  #
  def ThreadsWait.all_waits(*threads) # :yield: thread
    tw = ThreadsWait.new(*threads)
    if block_given?
      tw.all_waits do |th|
	yield th
      end
    else
      tw.all_waits
    end
  end
  
  #
  # Creates a ThreadsWait object, specifying the threads to wait on.
  # Non-blocking.
  #
  def initialize(*threads)
    @threads = []
    @wait_queue = Queue.new
    join_nowait(*threads) unless threads.empty?
  end
  
  # Returns the array of threads in the wait queue.
  attr :threads
  
  #
  # Returns +true+ if there are no threads to be synchronized.
  #
  def empty?
    @threads.empty?
  end
  
  #
  # Returns +true+ if any thread has terminated.
  #
  def finished?
    !@wait_queue.empty?
  end
  
  #
  # Waits for specified threads to terminate, and returns when one of
  # the threads terminated.
  #
  def join(*threads)
    join_nowait(*threads)
    next_wait
  end
  
  #
  # Specifies the threads that this object will wait for, but does not actually
  # wait.
  #
  def join_nowait(*threads)
    threads.flatten!
    @threads.concat threads
    for th in threads
      Thread.start(th) do |t|
	begin
	  t.join
	ensure
	  @wait_queue.push t
	end
      end
    end
  end
  
  #
  # Waits until any of the specified threads has terminated, and returns the one
  # that does.
  #
  # If there is no thread to wait, raises +ErrNoWaitingThread+.  If +nonblock+
  # is true, and there is no terminated thread, raises +ErrNoFinishedThread+.
  #
  def next_wait(nonblock = nil)
    ThreadsWait.fail ErrNoWaitingThread if @threads.empty?
    begin
      @threads.delete(th = @wait_queue.pop(nonblock))
      th
    rescue ThreadError
      ThreadsWait.fail ErrNoFinishedThread
    end
  end
  
  #
  # Waits until all of the specified threads are terminated.  If a block is
  # supplied for the method, it is executed for each thread termination.
  #
  # Raises exceptions in the same manner as +next_wait+.
  #
  def all_waits
    until @threads.empty?
      th = next_wait
      yield th if block_given?
    end
  end
end

ThWait = ThreadsWait


# Documentation comments:
#  - Source of documentation is evenly split between Nutshell, existing
#    comments, and my own rephrasing.
#  - I'm not particularly confident that the comments are all exactly correct.
#  - The history, etc., up the top appears in the RDoc output.  Perhaps it would
#    be better to direct that not to appear, and put something else there
#    instead.

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:50:07
root / root
0755
bigdecimal
--
March 03 2024 22:48:14
root / linksafe
0755
cgi
--
March 03 2024 22:48:14
root / linksafe
0755
date
--
March 03 2024 22:48:14
root / linksafe
0755
digest
--
March 03 2024 22:48:14
root / linksafe
0755
dl
--
March 03 2024 22:48:14
root / linksafe
0755
drb
--
March 03 2024 22:48:14
root / linksafe
0755
io
--
March 03 2024 22:48:14
root / linksafe
0755
irb
--
March 03 2024 22:48:14
root / linksafe
0755
net
--
March 03 2024 22:48:14
root / linksafe
0755
openssl
--
March 03 2024 22:48:14
root / linksafe
0755
optparse
--
March 03 2024 22:48:14
root / linksafe
0755
racc
--
March 03 2024 22:48:14
root / linksafe
0755
rdoc
--
March 03 2024 22:48:17
root / linksafe
0755
rexml
--
March 03 2024 22:48:14
root / linksafe
0755
rinda
--
March 03 2024 22:48:14
root / linksafe
0755
rss
--
March 03 2024 22:48:14
root / linksafe
0755
runit
--
March 03 2024 22:48:14
root / linksafe
0755
shell
--
March 03 2024 22:48:14
root / linksafe
0755
soap
--
March 03 2024 22:48:14
root / linksafe
0755
test
--
March 03 2024 22:48:14
root / linksafe
0755
uri
--
March 03 2024 22:48:14
root / linksafe
0755
webrick
--
March 03 2024 22:48:14
root / linksafe
0755
wsdl
--
March 03 2024 22:48:14
root / linksafe
0755
x86_64-linux
--
March 03 2024 22:50:34
root / root
0755
xmlrpc
--
March 03 2024 22:48:14
root / linksafe
0755
xsd
--
March 03 2024 22:48:14
root / linksafe
0755
yaml
--
March 03 2024 22:48:14
root / linksafe
0755
English.rb
5.598 KB
February 12 2007 23:01:19
root / linksafe
0644
Env.rb
0.268 KB
February 12 2007 23:01:19
root / linksafe
0644
abbrev.rb
2.503 KB
February 12 2007 23:01:19
root / linksafe
0644
base64.rb
3.37 KB
July 16 2007 15:47:16
root / linksafe
0644
benchmark.rb
17.729 KB
February 10 2008 15:24:56
root / linksafe
0644
cgi-lib.rb
6.891 KB
February 12 2007 23:01:19
root / linksafe
0644
cgi.rb
73.737 KB
December 14 2009 02:40:07
root / linksafe
0644
complex.rb
12.839 KB
August 03 2009 05:59:38
root / linksafe
0644
csv.rb
24.459 KB
February 12 2007 23:01:19
root / linksafe
0644
date.rb
53.024 KB
June 08 2010 04:45:42
root / linksafe
0644
date2.rb
0.125 KB
February 12 2007 23:01:19
root / linksafe
0644
debug.rb
20.609 KB
February 12 2007 23:01:19
root / linksafe
0644
delegate.rb
8.808 KB
July 16 2009 00:35:14
root / linksafe
0644
digest.rb
1.118 KB
July 28 2007 00:40:58
root / linksafe
0644
drb.rb
0.019 KB
February 12 2007 23:01:19
root / linksafe
0644
e2mmap.rb
4.037 KB
February 12 2007 23:01:19
root / linksafe
0644
erb.rb
21.38 KB
February 23 2009 17:44:50
root / linksafe
0644
eregex.rb
0.476 KB
February 12 2007 23:01:19
root / linksafe
0644
expect.rb
0.618 KB
February 18 2008 01:17:44
root / linksafe
0644
fileutils.rb
42.229 KB
May 20 2011 22:29:13
root / linksafe
0644
finalize.rb
5.376 KB
February 12 2007 23:01:19
root / linksafe
0644
find.rb
1.836 KB
February 12 2007 23:01:19
root / linksafe
0644
forwardable.rb
6.163 KB
June 06 2008 08:05:24
root / linksafe
0644
ftools.rb
6.168 KB
February 12 2007 23:01:19
root / linksafe
0644
generator.rb
8.1 KB
April 10 2008 10:52:50
root / linksafe
0644
getoptlong.rb
14.877 KB
February 12 2007 23:01:19
root / linksafe
0644
getopts.rb
2.252 KB
February 12 2007 23:01:19
root / linksafe
0644
gserver.rb
6.431 KB
February 12 2007 23:01:19
root / linksafe
0644
importenv.rb
0.576 KB
February 12 2007 23:01:19
root / linksafe
0644
ipaddr.rb
21.957 KB
July 12 2008 15:08:29
root / linksafe
0644
irb.rb
7.43 KB
August 09 2009 08:44:15
root / linksafe
0644
jcode.rb
4.297 KB
February 12 2007 23:01:19
root / linksafe
0644
kconv.rb
8.124 KB
February 12 2007 23:01:19
root / linksafe
0644
logger.rb
17.588 KB
May 30 2011 02:08:57
root / linksafe
0644
mailread.rb
1.284 KB
February 12 2007 23:01:19
root / linksafe
0644
mathn.rb
5.419 KB
February 12 2007 23:01:19
root / linksafe
0644
matrix.rb
27.208 KB
January 24 2009 15:02:50
root / linksafe
0644
md5.rb
0.401 KB
March 06 2007 10:09:51
root / linksafe
0644
mkmf.rb
50.646 KB
December 04 2010 06:34:10
root / linksafe
0644
monitor.rb
7.926 KB
November 25 2009 07:45:29
root / linksafe
0644
mutex_m.rb
2.072 KB
February 12 2007 23:01:19
root / linksafe
0644
observer.rb
5.154 KB
February 12 2007 23:01:19
root / linksafe
0644
open-uri.rb
20.49 KB
October 08 2007 11:16:54
root / linksafe
0644
open3.rb
2.098 KB
December 14 2009 04:28:06
root / linksafe
0644
openssl.rb
0.562 KB
November 22 2010 07:21:45
root / linksafe
0644
optparse.rb
47.121 KB
February 20 2009 11:43:35
root / linksafe
0644
ostruct.rb
3.354 KB
May 26 2009 12:06:21
root / linksafe
0644
parsearg.rb
1.554 KB
February 12 2007 23:01:19
root / linksafe
0644
parsedate.rb
1.327 KB
February 12 2007 23:01:19
root / linksafe
0644
pathname.rb
29.386 KB
November 23 2010 08:21:08
root / linksafe
0644
ping.rb
1.481 KB
February 12 2007 23:01:19
root / linksafe
0644
pp.rb
15.966 KB
June 07 2007 10:06:41
root / linksafe
0644
prettyprint.rb
18.335 KB
February 16 2007 19:53:09
root / linksafe
0644
profile.rb
0.088 KB
February 12 2007 23:01:19
root / linksafe
0644
profiler.rb
1.589 KB
February 12 2007 23:01:19
root / linksafe
0644
pstore.rb
11.149 KB
June 06 2008 08:05:24
root / linksafe
0644
rational.rb
12.05 KB
June 08 2010 05:02:31
root / linksafe
0644
readbytes.rb
0.815 KB
February 12 2007 23:01:19
root / linksafe
0644
resolv-replace.rb
1.553 KB
August 08 2008 01:58:40
root / linksafe
0644
resolv.rb
56.831 KB
December 23 2010 03:22:57
root / linksafe
0644
rss.rb
0.492 KB
October 21 2007 12:19:43
root / linksafe
0644
rubyunit.rb
0.176 KB
February 12 2007 23:01:19
root / linksafe
0644
scanf.rb
20.633 KB
January 20 2009 03:23:46
root / linksafe
0644
securerandom.rb
4.267 KB
December 10 2011 12:17:33
root / linksafe
0644
set.rb
27.076 KB
June 09 2008 09:20:43
root / linksafe
0644
sha1.rb
0.408 KB
March 06 2007 10:09:51
root / linksafe
0644
shell.rb
4.655 KB
February 12 2007 23:01:19
root / linksafe
0644
shellwords.rb
3.99 KB
March 21 2008 12:16:15
root / linksafe
0644
singleton.rb
8.077 KB
July 03 2008 11:14:50
root / linksafe
0644
sync.rb
6.086 KB
February 19 2009 16:41:12
root / linksafe
0644
tempfile.rb
4.861 KB
April 21 2008 09:43:44
root / linksafe
0644
thread.rb
0.102 KB
February 13 2007 19:39:32
root / linksafe
0644
thwait.rb
4.316 KB
June 08 2010 07:08:15
root / linksafe
0644
time.rb
31.58 KB
June 06 2008 08:05:24
root / linksafe
0644
timeout.rb
3.005 KB
June 08 2010 06:24:25
root / linksafe
0644
tmpdir.rb
3.694 KB
January 26 2009 02:12:10
root / linksafe
0644
tracer.rb
2.727 KB
February 12 2007 23:01:19
root / linksafe
0644
tsort.rb
7.993 KB
February 12 2007 23:01:19
root / linksafe
0644
un.rb
4.537 KB
February 12 2007 23:01:19
root / linksafe
0644
uri.rb
0.693 KB
April 15 2008 09:41:47
root / linksafe
0644
weakref.rb
2.684 KB
February 12 2007 23:01:19
root / linksafe
0644
webrick.rb
0.792 KB
February 12 2007 23:01:19
root / linksafe
0644
yaml.rb
12.355 KB
April 19 2008 11:45:39
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF