docs: def run_decider_state(self, decider_state, child_errors, final_outcomes_dict):
          """ Runs the decider state of the barrier concurrency state. The decider state decides on which outcome the
          barrier concurrency is left.
  
          :param decider_state: the decider state of the barrier concurrency state
          :param child_errors: error of the concurrent branches
          :param final_outcomes_dict: dictionary of all outcomes of the concurrent branches
          :return:
          """
          decider_state.state_execution_status = StateExecutionStatus.ACTIVE
          # forward the decider specific data
          decider_state.child_errors = child_errors
          decider_state.final_outcomes_dict = final_outcomes_dict
          # standard state execution
          decider_state.input_data = self.get_inputs_for_state(decider_state)
          decider_state.output_data = self.create_output_dictionary_for_state(decider_state)
          decider_state.start(self.execution_history, backward_execution=False)
          decider_state.join()
          decider_state_error = None
          if decider_state.final_outcome.outcome_id == -1:
              if 'error' in decider_state.output_data:
                  decider_state_error = decider_state.output_data['error']
          # standard output data processing
          self.add_state_execution_output_to_scoped_data(decider_state.output_data, decider_state)
          self.update_scoped_variables_with_output_dictionary(decider_state.output_data, decider_state)
          return decider_state_error