Module: Actor::Module::Start

Defined in:
lib/actor/actor.rb

Instance Method Summary collapse

Instance Method Details

#start(*positional_arguments, address: nil, supervisor_address: nil, include: nil, **keyword_arguments, &block) ⇒ Object



98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/actor/actor.rb', line 98

def start *positional_arguments, address: nil, supervisor_address: nil, include: nil, **keyword_arguments, &block
  address ||= Address.build

  instance = build address, *positional_arguments, **keyword_arguments, &block

  thread = Actor::Start.(
    instance,
    address,
    supervisor_address: supervisor_address
  )

  Destructure.(address, include, { :thread => thread, :actor => instance })
end