Linux premium71.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
LiteSpeed
Server IP : 198.187.29.8 & Your IP : 18.221.133.22
Domains :
Cant Read [ /etc/named.conf ]
User : cleahvkv
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
ruby21 /
lib64 /
ruby /
2.1.0 /
rake /
Delete
Unzip
Name
Size
Permission
Date
Action
contrib
[ DIR ]
drwxr-xr-x
2024-03-03 22:53
ext
[ DIR ]
drwxr-xr-x
2024-03-03 22:53
lib
[ DIR ]
drwxr-xr-x
2024-03-03 22:53
loaders
[ DIR ]
drwxr-xr-x
2024-03-03 22:53
alt_system.rb
3.13
KB
-rw-r--r--
2013-10-11 21:35
application.rb
20.78
KB
-rw-r--r--
2013-10-11 21:35
backtrace.rb
715
B
-rw-r--r--
2013-10-11 21:35
clean.rb
1.37
KB
-rw-r--r--
2013-10-11 21:35
cloneable.rb
482
B
-rw-r--r--
2012-11-15 21:59
default_loader.rb
164
B
-rw-r--r--
2011-06-23 22:11
dsl_definition.rb
4.15
KB
-rw-r--r--
2013-10-11 21:35
early_time.rb
273
B
-rw-r--r--
2011-06-23 22:11
file_creation_task.rb
670
B
-rw-r--r--
2011-06-23 22:11
file_list.rb
11.82
KB
-rw-r--r--
2013-10-11 21:35
file_task.rb
1.28
KB
-rw-r--r--
2013-10-11 21:35
file_utils.rb
3.03
KB
-rw-r--r--
2013-10-11 21:35
file_utils_ext.rb
4.05
KB
-rw-r--r--
2013-10-11 21:35
gempackagetask.rb
116
B
-rw-r--r--
2013-10-11 21:35
invocation_chain.rb
1.23
KB
-rw-r--r--
2013-10-11 21:35
invocation_exception_mixin.rb
431
B
-rw-r--r--
2011-06-23 22:11
linked_list.rb
2.27
KB
-rw-r--r--
2013-10-11 21:35
multi_task.rb
315
B
-rw-r--r--
2012-11-15 21:59
name_space.rb
618
B
-rw-r--r--
2013-10-11 21:35
packagetask.rb
5.11
KB
-rw-r--r--
2013-10-11 21:35
pathmap.rb
26
B
-rw-r--r--
2011-06-23 22:11
phony.rb
351
B
-rw-r--r--
2012-11-15 22:32
private_reader.rb
364
B
-rw-r--r--
2012-11-15 22:01
promise.rb
2.28
KB
-rw-r--r--
2013-10-11 21:35
pseudo_status.rb
427
B
-rw-r--r--
2013-10-11 21:35
rake_module.rb
727
B
-rw-r--r--
2012-11-15 22:32
rake_test_loader.rb
341
B
-rw-r--r--
2011-06-28 02:45
rdoctask.rb
126
B
-rw-r--r--
2013-10-11 21:35
ruby182_test_unit_fix.rb
870
B
-rw-r--r--
2013-10-11 21:35
rule_recursion_overflow_error.rb
353
B
-rw-r--r--
2011-06-23 22:11
runtest.rb
471
B
-rw-r--r--
2013-10-11 21:35
scope.rb
868
B
-rw-r--r--
2013-10-11 21:35
task.rb
10.96
KB
-rw-r--r--
2013-10-11 21:35
task_argument_error.rb
119
B
-rw-r--r--
2011-06-23 22:11
task_arguments.rb
1.88
KB
-rw-r--r--
2013-10-11 21:35
task_manager.rb
8.4
KB
-rw-r--r--
2013-10-11 21:35
tasklib.rb
580
B
-rw-r--r--
2013-10-11 21:35
testtask.rb
5.22
KB
-rw-r--r--
2013-10-11 21:35
thread_history_display.rb
1.11
KB
-rw-r--r--
2013-10-11 21:35
thread_pool.rb
4.74
KB
-rw-r--r--
2013-10-11 21:35
trace_output.rb
529
B
-rw-r--r--
2013-10-11 21:35
version.rb
178
B
-rw-r--r--
2013-10-11 21:35
win32.rb
1.54
KB
-rw-r--r--
2013-10-11 21:35
Save
Rename
require 'thread' require 'set' require 'rake/promise' module Rake class ThreadPool # :nodoc: all # Creates a ThreadPool object. # The parameter is the size of the pool. def initialize(thread_count) @max_active_threads = [thread_count, 0].max @threads = Set.new @threads_mon = Monitor.new @queue = Queue.new @join_cond = @threads_mon.new_cond @history_start_time = nil @history = [] @history_mon = Monitor.new @total_threads_in_play = 0 end # Creates a future executed by the +ThreadPool+. # # The args are passed to the block when executing (similarly to # <tt>Thread#new</tt>) The return value is an object representing # a future which has been created and added to the queue in the # pool. Sending <tt>#value</tt> to the object will sleep the # current thread until the future is finished and will return the # result (or raise an exception thrown from the future) def future(*args, &block) promise = Promise.new(args, &block) promise.recorder = lambda { |*stats| stat(*stats) } @queue.enq promise stat :queued, :item_id => promise.object_id start_thread promise end # Waits until the queue of futures is empty and all threads have exited. def join @threads_mon.synchronize do begin stat :joining @join_cond.wait unless @threads.empty? stat :joined rescue Exception => e stat :joined $stderr.puts e $stderr.print "Queue contains #{@queue.size} items. " + "Thread pool contains #{@threads.count} threads\n" $stderr.print "Current Thread #{Thread.current} status = " + "#{Thread.current.status}\n" $stderr.puts e.backtrace.join("\n") @threads.each do |t| $stderr.print "Thread #{t} status = #{t.status}\n" # 1.8 doesn't support Thread#backtrace $stderr.puts t.backtrace.join("\n") if t.respond_to? :backtrace end raise e end end end # Enable the gathering of history events. def gather_history #:nodoc: @history_start_time = Time.now if @history_start_time.nil? end # Return a array of history events for the thread pool. # # History gathering must be enabled to be able to see the events # (see #gather_history). Best to call this when the job is # complete (i.e. after ThreadPool#join is called). def history # :nodoc: @history_mon.synchronize { @history.dup }. sort_by { |i| i[:time] }. each { |i| i[:time] -= @history_start_time } end # Return a hash of always collected statistics for the thread pool. def statistics # :nodoc: { :total_threads_in_play => @total_threads_in_play, :max_active_threads => @max_active_threads, } end private # processes one item on the queue. Returns true if there was an # item to process, false if there was no item def process_queue_item #:nodoc: return false if @queue.empty? # Even though we just asked if the queue was empty, it # still could have had an item which by this statement # is now gone. For this reason we pass true to Queue#deq # because we will sleep indefinitely if it is empty. promise = @queue.deq(true) stat :dequeued, :item_id => promise.object_id promise.work return true rescue ThreadError # this means the queue is empty false end def start_thread # :nodoc: @threads_mon.synchronize do next unless @threads.count < @max_active_threads t = Thread.new do begin while @threads.count <= @max_active_threads break unless process_queue_item end ensure @threads_mon.synchronize do @threads.delete Thread.current stat :ended, :thread_count => @threads.count @join_cond.broadcast if @threads.empty? end end end @threads << t stat( :spawned, :new_thread => t.object_id, :thread_count => @threads.count) @total_threads_in_play = @threads.count if @threads.count > @total_threads_in_play end end def stat(event, data=nil) # :nodoc: return if @history_start_time.nil? info = { :event => event, :data => data, :time => Time.now, :thread => Thread.current.object_id, } @history_mon.synchronize { @history << info } end # for testing only def __queue__ # :nodoc: @queue end def __threads__ # :nodoc: @threads.dup end end end