#include <stdio.h>
#include <signal.h>
#include <setjmp.h>
Go to the source code of this file.
#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE |
BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1; \ octave_rethrow_exception (); \ BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_2
#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1 |
do \ { \ octave_jmp_buf saved_context; \ \ octave_save_current_context (saved_context); \ \ if (octave_set_current_context) \ { \ octave_restore_current_context (saved_context)
#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_2 |
} \ else \ { \ octave_interrupt_immediately++
#define END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE |
octave_interrupt_immediately--; \ octave_restore_current_context (saved_context); \ } \ } \ while (0)
#define OCTAVE_QUIT |
do \ { \ if (octave_signal_caught) \ { \ octave_signal_caught = 0; \ octave_handle_signal (); \ } \ } \ while (0)
#define octave_set_current_context setjmp (current_context) |
typedef jmp_buf octave_jmp_buf |
enum octave_exception |
CRUFT_API void octave_handle_signal | ( | void | ) |
Definition at line 39 of file quit.cc.
References octave_interrupt_state, octave_signal_hook, and octave_throw_interrupt_exception().
CRUFT_API void octave_jump_to_enclosing_context | ( | void | ) |
Definition at line 217 of file cquit.c.
References current_context.
Referenced by F77_FUNC(), and user_abort().
CRUFT_API void octave_restore_current_context | ( | void * | ) |
Definition at line 41 of file cquit.c.
References current_context.
CRUFT_API void octave_restore_signal_mask | ( | void | ) |
Definition at line 243 of file cquit.c.
Referenced by recover_from_exception().
CRUFT_API void octave_rethrow_exception | ( | void | ) |
Definition at line 82 of file quit.cc.
References octave_alloc_exception, octave_exception_state, octave_exec_exception, octave_interrupt_state, octave_throw_bad_alloc(), octave_throw_execution_exception(), and octave_throw_interrupt_exception().
CRUFT_API void octave_save_current_context | ( | void * | ) |
Definition at line 35 of file cquit.c.
References current_context.
CRUFT_API void octave_save_signal_mask | ( | void | ) |
Definition at line 237 of file cquit.c.
Referenced by execute_command_line_file(), execute_eval_option_code(), and main_loop().
CRUFT_API void octave_throw_bad_alloc | ( | void | ) |
Definition at line 71 of file quit.cc.
References octave_bad_alloc_hook, and octave_exception_state.
Referenced by octave_rethrow_exception().
CRUFT_API void octave_throw_execution_exception | ( | void | ) |
Definition at line 61 of file quit.cc.
References octave_exception_state.
Referenced by lo_error_handler(), lo_error_with_id_handler(), and octave_rethrow_exception().
CRUFT_API void octave_throw_interrupt_exception | ( | void | ) |
Definition at line 52 of file quit.cc.
References octave_interrupt_hook.
Referenced by DEFUN(), octave_handle_signal(), and octave_rethrow_exception().
CRUFT_API octave_jmp_buf current_context |
Definition at line 32 of file cquit.c.
Referenced by octave_jump_to_enclosing_context(), octave_restore_current_context(), and octave_save_current_context().
CRUFT_API sig_atomic_t octave_exception_state |
Definition at line 252 of file cquit.c.
Referenced by gripe_library_execution_error(), octave_rethrow_exception(), octave_throw_bad_alloc(), octave_throw_execution_exception(), and recover_from_exception().
CRUFT_API sig_atomic_t octave_interrupt_immediately |
Definition at line 248 of file cquit.c.
Referenced by recover_from_exception(), and user_abort().
CRUFT_API sig_atomic_t octave_interrupt_state |
Definition at line 250 of file cquit.c.
Referenced by DEFUN(), tree_evaluator::do_unwind_protect_cleanup_code(), octave_handle_signal(), octave_rethrow_exception(), recover_from_exception(), user_abort(), and octave_oncleanup::~octave_oncleanup().
CRUFT_API volatile sig_atomic_t octave_signal_caught |
Definition at line 254 of file cquit.c.
Referenced by recover_from_exception(), and user_abort().