Пример #1
0
void
transaction_commit (void)
{
  guarantee_current_transaction ("transaction_commit");
  (current_transaction -> state) = committing;
  dstack_set_position (current_transaction -> checkpoint);
}
Пример #2
0
void
unbind_interpreter_state (interpreter_state_t s)
{
    interpreter_state = s;
    {
        unsigned long old_mask = GET_INT_MASK;
        SET_INTERRUPT_MASK (0);
        dstack_set_position (s -> dstack_position);
        SET_INTERRUPT_MASK (old_mask);
    }
    interpreter_state = (s -> previous_state);
}
Пример #3
0
void
abort_to_interpreter (int argument)
{
    if (interpreter_state == NULL_INTERPRETER_STATE)
    {
        outf_fatal ("abort_to_interpreter: Interpreter not set up.\n");
        termination_init_error ();
    }

    interpreter_throw_argument = argument;
    {
        unsigned long old_mask = GET_INT_MASK;
        SET_INTERRUPT_MASK (0);
        dstack_set_position (interpreter_catch_dstack_position);
        SET_INTERRUPT_MASK (old_mask);
    }
    obstack_free ((&scratch_obstack), 0);
    obstack_init (&scratch_obstack);
    longjmp (interpreter_catch_env, argument);
}