My Project
Loading...
Searching...
No Matches
cntrlc.h File Reference
#include <setjmp.h>
#include "kernel/mod2.h"
#include "kernel/structs.h"

Go to the source code of this file.

Typedefs

typedef void(* si_hdl_typ) (int)
 

Functions

void init_signals (void)
 init signal handlers and error handling for libraries: NTL, factory
 
void si_set_signals ()
 
void si_reset_signals ()
 
void sig_term_hdl_child (int)
 
void sig_term_hdl (int)
 
si_hdl_typ si_set_signal (int sig, si_hdl_typ signal_handler)
 meta function for binding a signal to an handler
 

Variables

EXTERN_VAR jmp_buf si_start_jmpbuf
 
EXTERN_VAR short si_restart
 
EXTERN_VAR int siRandomStart
 
EXTERN_VAR BOOLEAN singular_in_batchmode
 
EXTERN_VAR volatile BOOLEAN do_shutdown
 
EXTERN_VAR volatile int defer_shutdown
 

Typedef Documentation

◆ si_hdl_typ

typedef void(* si_hdl_typ) (int)

Definition at line 30 of file cntrlc.h.

Function Documentation

◆ init_signals()

void init_signals ( void )

init signal handlers and error handling for libraries: NTL, factory

Definition at line 530 of file cntrlc.cc.

531{
532// signal handler -------------------------------------------------------
533 #ifdef SIGSEGV
535 #endif
536 #ifdef SIGBUS
538 #endif
539 #ifdef SIGFPE
541 #endif
542 #ifdef SIGILL
544 #endif
545 #ifdef SIGIOT
547 #endif
552}
void sig_pipe_hdl(int)
Definition cntrlc.cc:64
si_hdl_typ si_set_signal(int sig, si_hdl_typ signal_handler)
meta function for binding a signal to an handler
Definition cntrlc.cc:121
void sig_term_hdl(int)
Definition cntrlc.cc:77
void sigint_handler(int)
Definition cntrlc.cc:269
void sigsegv_handler(int sig)
Definition cntrlc.cc:237
void(* si_hdl_typ)(int)
Definition cntrlc.h:30

◆ si_reset_signals()

void si_reset_signals ( )

Definition at line 568 of file cntrlc.cc.

569{
570// signal handler -------------------------------------------------------
571 //si_set_signal(SIGINT ,si_sigint_handler);
573 //si_set_signal(SIGPIPE, si_sig_pipe_hdl);
575}
VAR si_hdl_typ si_sig_term_hdl
Definition cntrlc.cc:558
VAR si_hdl_typ old_sig_chld_hdl
Definition cntrlc.cc:556

◆ si_set_signal()

si_hdl_typ si_set_signal ( int sig,
si_hdl_typ signal_handler )

meta function for binding a signal to an handler

Parameters
[in]sigSignal number
[in]signal_handlerPointer to signal handler
Returns
value of signal()

Definition at line 121 of file cntrlc.cc.

122{
123#if 0
124 si_hdl_typ retval=signal (sig, (si_hdl_typ)signal_handler);
125 if (retval == SIG_ERR)
126 {
127 fprintf(stderr, "Unable to init signal %d ... exiting...\n", sig);
128 }
129 si_siginterrupt(sig, 0);
130 /*system calls will be restarted if interrupted by the specified
131 * signal sig. This is the default behavior in Linux.
132 */
133#else
134 struct sigaction new_action,old_action;
135 memset(&new_action, 0, sizeof(struct sigaction));
136
137 /* Set up the structure to specify the new action. */
138 new_action.sa_handler = signal_handler;
139 if (sig==SIGINT)
140 sigemptyset (&new_action.sa_mask);
141 else
142 new_action.sa_flags = SA_RESTART /*| SA_NOCLDWAIT*/;
143
144 int r=si_sigaction (sig, &new_action, &old_action);
145 si_hdl_typ retval=(si_hdl_typ)old_action.sa_handler;
146 if (r == -1)
147 {
148 fprintf(stderr, "Unable to init signal %d ... exiting...\n", sig);
149 retval=SIG_ERR;
150 }
151#endif
152 return retval;
153} /* si_set_signal */
#define si_siginterrupt(arg1, arg2)

◆ si_set_signals()

void si_set_signals ( )

Definition at line 560 of file cntrlc.cc.

561{
562 //si_sigint_handler=si_set_signal(SIGINT ,(si_hdl_typ)sigint_handler);
564 //si_sig_pipe_hdl=si_set_signal(SIGPIPE, (si_hdl_typ)sig_pipe_hdl);
566}
VAR si_hdl_typ si_sig_chld_hdl
Definition cntrlc.cc:555

◆ sig_term_hdl()

void sig_term_hdl ( int )

Definition at line 77 of file cntrlc.cc.

78{
80 if (!defer_shutdown)
81 {
82 m2_end(-1);
83 }
84}
#define TRUE
Definition auxiliary.h:101
VAR volatile BOOLEAN do_shutdown
Definition cntrlc.cc:74
VAR volatile int defer_shutdown
Definition cntrlc.cc:75
void m2_end(int i)
Definition misc_ip.cc:1102

◆ sig_term_hdl_child()

void sig_term_hdl_child ( int )

Definition at line 86 of file cntrlc.cc.

87{
88 _exit(0);
89}

Variable Documentation

◆ defer_shutdown

EXTERN_VAR volatile int defer_shutdown

Definition at line 23 of file cntrlc.h.

◆ do_shutdown

EXTERN_VAR volatile BOOLEAN do_shutdown

Definition at line 22 of file cntrlc.h.

◆ si_restart

EXTERN_VAR short si_restart

Definition at line 14 of file cntrlc.h.

◆ si_start_jmpbuf

EXTERN_VAR jmp_buf si_start_jmpbuf

Definition at line 13 of file cntrlc.h.

◆ singular_in_batchmode

EXTERN_VAR BOOLEAN singular_in_batchmode

Definition at line 18 of file cntrlc.h.

◆ siRandomStart

EXTERN_VAR int siRandomStart

Definition at line 15 of file cntrlc.h.