Sha256: 144603d0b4ef12f88055dc2abe6884548cc6a87bd14b90fc6bc49c4a3174b2a3

Contents?: true

Size: 737 Bytes

Versions: 39

Compression:

Stored size: 737 Bytes

Contents

module Rex

###
# 
# This class provides a wrapper around Thread.new that can provide 
# additional features if a corresponding thread provider is set.
#
###

class ThreadFactory

	@@provider = nil
	
	def self.provider=(val)
		@@provider = val
	end

	def self.spawn(name, crit, *args, &block)
		if @@provider
			if block
				return @@provider.spawn(name, crit, *args){ |*args_copy| block.call(*args_copy) }
			else
				return @@provider.spawn(name, crit, *args)
			end
		else
			t = nil
			if block
				t = ::Thread.new(*args){ |*args_copy| block.call(*args_copy) }
			else
				t = ::Thread.new(*args)
			end
			t[:tm_name] = name
			t[:tm_crit] = crit
			t[:tm_time] = Time.now
			t[:tm_call] = caller
			return t
		end
	
	end
end

end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
librex-0.0.35 lib/rex/thread_factory.rb
librex-0.0.34 lib/rex/thread_factory.rb
librex-0.0.33 lib/rex/thread_factory.rb
librex-0.0.32 lib/rex/thread_factory.rb
librex-0.0.31 lib/rex/thread_factory.rb
librex-0.0.30 lib/rex/thread_factory.rb
librex-0.0.29 lib/rex/thread_factory.rb
librex-0.0.28 lib/rex/thread_factory.rb
librex-0.0.27 lib/rex/thread_factory.rb
librex-0.0.26 lib/rex/thread_factory.rb
librex-0.0.25 lib/rex/thread_factory.rb
librex-0.0.23 lib/rex/thread_factory.rb
librex-0.0.21 lib/rex/thread_factory.rb
librex-0.0.19 lib/rex/thread_factory.rb
librex-0.0.17 lib/rex/thread_factory.rb
librex-0.0.13 lib/rex/thread_factory.rb
librex-0.0.12 lib/rex/thread_factory.rb
librex-0.0.7 lib/rex/thread_factory.rb
librex-0.0.6 lib/rex/thread_factory.rb