Defines | Typedefs | Enumerations | Functions | Variables

quit.h File Reference

#include <stdio.h>
#include <signal.h>
#include <setjmp.h>
Include dependency graph for quit.h:

Go to the source code of this file.

Defines

#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE
#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1
#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_2
#define END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE
#define OCTAVE_QUIT
#define octave_set_current_context   setjmp (current_context)

Typedefs

typedef jmp_buf octave_jmp_buf

Enumerations

enum  octave_exception { octave_no_exception = 0, octave_exec_exception = 1, octave_alloc_exception = 2 }

Functions

CRUFT_API void octave_handle_signal (void)
CRUFT_API void octave_jump_to_enclosing_context (void) GCC_ATTR_NORETURN
CRUFT_API void octave_restore_current_context (void *)
CRUFT_API void octave_restore_signal_mask (void)
CRUFT_API void octave_rethrow_exception (void)
CRUFT_API void octave_save_current_context (void *)
CRUFT_API void octave_save_signal_mask (void)
CRUFT_API void octave_throw_bad_alloc (void) GCC_ATTR_NORETURN
CRUFT_API void octave_throw_execution_exception (void) GCC_ATTR_NORETURN
CRUFT_API void octave_throw_interrupt_exception (void) GCC_ATTR_NORETURN

Variables

CRUFT_API octave_jmp_buf current_context
CRUFT_API sig_atomic_t octave_exception_state
CRUFT_API sig_atomic_t octave_interrupt_immediately
CRUFT_API sig_atomic_t octave_interrupt_state
CRUFT_API volatile sig_atomic_t octave_signal_caught

Define Documentation

#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE
Value:
BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1; \
  octave_rethrow_exception (); \
  BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_2

Definition at line 158 of file quit.h.

#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_1
Value:
do \
    { \
      octave_jmp_buf saved_context; \
 \
      octave_save_current_context (saved_context); \
 \
      if (octave_set_current_context) \
        { \
          octave_restore_current_context (saved_context)

Definition at line 163 of file quit.h.

#define BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_2
Value:

Definition at line 174 of file quit.h.

#define END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE
Value:
octave_interrupt_immediately--; \
          octave_restore_current_context (saved_context); \
        } \
    } \
  while (0)

Definition at line 180 of file quit.h.

#define OCTAVE_QUIT
Value:
do \
    { \
      if (octave_signal_caught) \
        { \
          octave_signal_caught = 0; \
          octave_handle_signal (); \
        } \
    } \
  while (0)

Definition at line 130 of file quit.h.

#define octave_set_current_context   setjmp (current_context)

Definition at line 58 of file quit.h.


Typedef Documentation

typedef jmp_buf octave_jmp_buf

Definition at line 56 of file quit.h.


Enumeration Type Documentation

Enumerator:
octave_no_exception 
octave_exec_exception 
octave_alloc_exception 

Definition at line 86 of file quit.h.


Function Documentation

CRUFT_API void octave_handle_signal ( void   ) 
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   ) 
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().


Variable Documentation

CRUFT_API sig_atomic_t octave_exception_state
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
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().

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines