Method: Emit::Process#run

Defined in:
lib/emit/process.rb

#runObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/emit/process.rb', line 38

def run
  @executed = false

  begin
    if @block.arity.negative?
      @return_value = @block.call(*@args, **@kwargs)
    elsif @block.arity > 0
      @return_value = @block.call(*@args)
    else
      @return_value = @block.call
    end
  rescue ::Emit::ChannelPoisonedException => e
    propagate_poison
    raise e
  rescue ::Emit::ChannelRetiredException => e
    propagate_retire
    raise e
  end

  @executed = true
end