Sha256: fe9fe41cdd69b3931216cf52c7b3c08e5f341f0ffd265c8b7fbc331450c320db
Contents?: true
Size: 822 Bytes
Versions: 1
Compression:
Stored size: 822 Bytes
Contents
class Knj::Thread2 def initialize(args = {}, &block) @args = args @block = block if block_given? @callbacks = {} end def connect(signal, &block) @callbacks[signal] = [] if !@callbacks.key?(signal) @callbacks[signal] << block end def call(signal, *args) return false if !@callbacks.key?(signal) @callbacks[signal].each do |block| block.call(*args) end return {:count => count} end def run Thread.new do abort_on_exception = true call(:on_run) begin @block.call rescue SystemExit call(:on_exit) exit rescue Exception => e call(:on_error, e) if !@args.key?(:print_error) or @args[:print_error] print "Error: " puts e.inspect print "\n" puts e.backtrace print "\n\n" end end call(:on_done) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
knjrbfw-0.0.8 | lib/knj/thread2.rb |