Path: blob/master/lib/rex/thread_factory.rb
19591 views
# -*- coding: binary -*-1module Rex23###4#5# This class provides a wrapper around Thread.new that can provide6# additional features if a corresponding thread provider is set.7#8###910class ThreadFactory1112@@provider = nil1314def self.provider=(val)15@@provider = val16end1718def self.spawn(name, crit, *args, &block)19if @@provider20if block21return @@provider.spawn(name, crit, *args){ |*args_copy| block.call(*args_copy) }22else23return @@provider.spawn(name, crit, *args)24end25else26t = nil27if block28t = ::Thread.new(*args){ |*args_copy| block.call(*args_copy) }29else30t = ::Thread.new(*args)31end32t[:tm_name] = name33t[:tm_crit] = crit34t[:tm_time] = ::Time.now35t[:tm_call] = caller36return t37end3839end40end4142end434445