class Thread

Public Class Methods

delayer() click to toggle source
# File lib/delayer/deferred/thread.rb, line 7
def self.delayer
  Delayer
end
new(*args, &proc) click to toggle source
# File lib/delayer/deferred/thread.rb, line 12
def initialize(*args, &proc)
  _deferredable_trap(*args, &_deferredable_trap_proc(&proc)) end
Also aliased as: _deferredable_trap

Public Instance Methods

_deferredable_trap(*args, &proc)
Alias for: new
cancel() click to toggle source
# File lib/delayer/deferred/thread.rb, line 16
def cancel
  deferredable_cancel
  kill end
Also aliased as: deferredable_cancel
deferredable_cancel()
Alias for: cancel

Private Instance Methods

_deferredable_trap_proc() click to toggle source
# File lib/delayer/deferred/thread.rb, line 21
def _deferredable_trap_proc
  proc = Proc.new
  ->(*args) do
    catch(:__deferredable_success) do
      failed = catch(:__deferredable_fail) do
        begin
          result = proc.call(*args)
          self.call(result)
          result
        rescue Exception => exception
          self.fail(exception) end
        throw :__deferredable_success end
      self.fail(failed) end end end