Files
metasploit-gs/lib/metasploit/framework/thread_factory_provider.rb
T

28 lines
984 B
Ruby
Raw Normal View History

# Wraps {Msf::Framework} so that {Msf::Framework#threads} is only created on the first call to {#spawn} by
2016-04-20 11:02:15 -07:00
# Rex::ThreadFactory#spawn, which allows the threads used by {Msf::ThreadManager} to be created lazily.
#
# @example Setting Rex::ThreadFactory.provider and spawning threads
# Rex::ThreadFactory.provider = Metasploit::Framework::ThreadFactoryProvider.new(framework: framework)
# # framework.threads created here
# Rex::ThreadFactory.spawn("name", false) { ... }
#
2020-09-22 02:56:51 +01:00
require 'metasploit_data_models'
class Metasploit::Framework::ThreadFactoryProvider < Metasploit::Model::Base
#
# Attributes
#
# @!attribute framework
# The framework managing the spawned threads.
#
# @return [Msf::Framework]
attr_accessor :framework
# Spawns a thread monitored by {Msf::ThreadManager} in {Msf::Framework#threads}.
#
# (see Msf::ThreadManager#spawn)
def spawn(name, critical, *args, &block)
framework.threads.spawn(name, critical, *args, &block)
end
2016-04-20 11:02:15 -07:00
end