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
cancel()
click to toggle source
# File lib/delayer/deferred/thread.rb, line 16 def cancel deferredable_cancel kill end
Also aliased as: deferredable_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