GRAYBYTE WORDPRESS FILE MANAGER9341

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
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/ruby20/lib64/ruby/2.0.0/rake/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby20/lib64/ruby/2.0.0/rake//promise.rb
module Rake

  # A Promise object represents a promise to do work (a chore) in the
  # future. The promise is created with a block and a list of
  # arguments for the block. Calling value will return the value of
  # the promised chore.
  #
  # Used by ThreadPool.
  #
  class Promise               # :nodoc: all
    NOT_SET = Object.new.freeze # :nodoc:

    attr_accessor :recorder

    # Create a promise to do the chore specified by the block.
    def initialize(args, &block)
      @mutex = Mutex.new
      @result = NOT_SET
      @error = NOT_SET
      @args = args.collect { |a| begin; a.dup; rescue; a; end }
      @block = block
    end

    # Return the value of this promise.
    #
    # If the promised chore is not yet complete, then do the work
    # synchronously. We will wait.
    def value
      unless complete?
        stat :sleeping_on, :item_id => object_id
        @mutex.synchronize do
          stat :has_lock_on, :item_id => object_id
          chore
          stat :releasing_lock_on, :item_id => object_id
        end
      end
      error? ? raise(@error) : @result
    end

    # If no one else is working this promise, go ahead and do the chore.
    def work
      stat :attempting_lock_on, :item_id => object_id
      if @mutex.try_lock
        stat :has_lock_on, :item_id => object_id
        chore
        stat :releasing_lock_on, :item_id => object_id
        @mutex.unlock
      else
        stat :bailed_on, :item_id => object_id
      end
    end

    private

    # Perform the chore promised
    def chore
      if complete?
        stat :found_completed, :item_id => object_id
        return
      end
      stat :will_execute, :item_id => object_id
      begin
        @result = @block.call(*@args)
      rescue Exception => e
        @error = e
      end
      stat :did_execute, :item_id => object_id
      discard
    end

    # Do we have a result for the promise
    def result?
      ! @result.equal?(NOT_SET)
    end

    # Did the promise throw an error
    def error?
      ! @error.equal?(NOT_SET)
    end

    # Are we done with the promise
    def complete?
      result? || error?
    end

    # free up these items for the GC
    def discard
      @args = nil
      @block = nil
    end

    # Record execution statistics if there is a recorder
    def stat(*args)
      @recorder.call(*args) if @recorder
    end

  end

end

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:53:08
root / root
0755
contrib
--
March 03 2024 22:53:08
root / linksafe
0755
ext
--
March 03 2024 22:53:08
root / linksafe
0755
lib
--
March 03 2024 22:53:08
root / linksafe
0755
loaders
--
March 03 2024 22:53:08
root / linksafe
0755
alt_system.rb
3.137 KB
June 23 2011 22:11:55
root / linksafe
0644
application.rb
21.27 KB
November 29 2012 19:16:46
root / linksafe
0644
backtrace.rb
0.607 KB
November 30 2012 03:21:06
root / linksafe
0644
classic_namespace.rb
0.398 KB
June 28 2011 02:45:29
root / linksafe
0644
clean.rb
1.001 KB
November 15 2012 21:59:37
root / linksafe
0644
cloneable.rb
0.471 KB
November 15 2012 21:59:37
root / linksafe
0644
default_loader.rb
0.16 KB
June 23 2011 22:11:55
root / linksafe
0644
dsl_definition.rb
5.019 KB
November 15 2012 21:59:37
root / linksafe
0644
early_time.rb
0.267 KB
June 23 2011 22:11:55
root / linksafe
0644
file_creation_task.rb
0.654 KB
June 23 2011 22:11:55
root / linksafe
0644
file_list.rb
11.496 KB
November 29 2012 19:16:46
root / linksafe
0644
file_task.rb
1.283 KB
June 23 2011 22:11:55
root / linksafe
0644
file_utils.rb
3.006 KB
December 06 2012 07:35:45
root / linksafe
0644
file_utils_ext.rb
4.104 KB
November 15 2012 21:59:37
root / linksafe
0644
gempackagetask.rb
0.276 KB
June 28 2011 02:45:29
root / linksafe
0644
invocation_chain.rb
0.939 KB
June 23 2011 22:11:55
root / linksafe
0644
invocation_exception_mixin.rb
0.421 KB
June 23 2011 22:11:55
root / linksafe
0644
multi_task.rb
0.308 KB
November 15 2012 21:59:37
root / linksafe
0644
name_space.rb
0.604 KB
June 23 2011 22:11:55
root / linksafe
0644
packagetask.rb
5.069 KB
June 23 2011 22:11:55
root / linksafe
0644
pathmap.rb
0.025 KB
June 23 2011 22:11:55
root / linksafe
0644
phony.rb
0.343 KB
November 15 2012 22:32:34
root / linksafe
0644
private_reader.rb
0.355 KB
November 15 2012 22:01:58
root / linksafe
0644
promise.rb
2.326 KB
November 15 2012 22:01:58
root / linksafe
0644
pseudo_status.rb
0.412 KB
June 23 2011 22:11:55
root / linksafe
0644
rake_module.rb
0.71 KB
November 15 2012 22:32:34
root / linksafe
0644
rake_test_loader.rb
0.333 KB
June 28 2011 02:45:29
root / linksafe
0644
rdoctask.rb
6.554 KB
November 15 2012 21:59:37
root / linksafe
0644
ruby182_test_unit_fix.rb
0.823 KB
November 22 2012 05:32:31
root / linksafe
0644
rule_recursion_overflow_error.rb
0.345 KB
June 23 2011 22:11:55
root / linksafe
0644
runtest.rb
0.457 KB
November 15 2012 22:32:34
root / linksafe
0644
task.rb
10.174 KB
November 29 2012 19:16:46
root / linksafe
0644
task_argument_error.rb
0.116 KB
June 23 2011 22:11:55
root / linksafe
0644
task_arguments.rb
1.629 KB
November 15 2012 21:59:37
root / linksafe
0644
task_manager.rb
8.781 KB
November 15 2012 21:59:37
root / linksafe
0644
tasklib.rb
0.566 KB
June 23 2011 22:11:55
root / linksafe
0644
testtask.rb
5.182 KB
November 15 2012 22:32:34
root / linksafe
0644
thread_history_display.rb
1.103 KB
November 15 2012 22:01:58
root / linksafe
0644
thread_pool.rb
4.668 KB
November 15 2012 22:01:58
root / linksafe
0644
trace_output.rb
0.477 KB
November 29 2012 19:16:46
root / linksafe
0644
version.rb
0.183 KB
December 21 2012 02:34:37
root / linksafe
0644
win32.rb
1.525 KB
June 23 2011 22:11:55
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF