Module: Smith::Workflow::SplitStepPersistence::ExecutionAuthorization

Included in:
Smith::Workflow::SplitStepPersistence
Defined in:
lib/smith/workflow/split_step_persistence/execution_authorization.rb

Instance Method Summary collapse

Instance Method Details

#release_prepared_step_execution!(authorization) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/smith/workflow/split_step_persistence/execution_authorization.rb', line 7

def release_prepared_step_execution!(authorization)
  authorization = validate_split_step_execution_authorization!(authorization)
  Thread.handle_interrupt(Object => :never) do
    @split_step_mutex.synchronize do
      unless active_split_step_execution_authorization?(authorization)
        raise WorkflowError, "the prepared-step execution authorization is no longer active"
      end

      @split_step_phase = @split_step_execution_previous_phase
      clear_split_step_execution_authorization!
    end
    PreparedStepExecutionAuthorization
      .instance_method(:close_execution!)
      .bind_call(authorization)
  end
  self
end