Changes in libcfa/src/bits/signal.hfa [8a13c47:58b6d1b]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/bits/signal.hfa
r8a13c47 r58b6d1b 37 37 38 38 act.sa_sigaction = (void (*)(int, siginfo_t *, void *))handler; 39 sigemptyset( &act.sa_mask );40 sigaddset( &act.sa_mask, SIGALRM ); // disabled during signal handler41 sigaddset( &act.sa_mask, SIGUSR1 );42 sigaddset( &act.sa_mask, SIGSEGV );43 sigaddset( &act.sa_mask, SIGBUS );44 sigaddset( &act.sa_mask, SIGILL );45 sigaddset( &act.sa_mask, SIGFPE );46 sigaddset( &act.sa_mask, SIGHUP ); // revert to default on second delivery47 sigaddset( &act.sa_mask, SIGTERM );48 sigaddset( &act.sa_mask, SIGINT );49 39 act.sa_flags = flags; 50 40 51 if ( sigaction( sig, &act, 0p) == -1 ) {41 if ( sigaction( sig, &act, NULL ) == -1 ) { 52 42 __cfaabi_dbg_print_buffer_decl( 53 43 " __cfaabi_sigaction( sig:%d, handler:%p, flags:%d ), problem installing signal handler, error(%d) %s.\n", … … 55 45 ); 56 46 _exit( EXIT_FAILURE ); 57 } // if47 } 58 48 } 49 50 // Sigaction wrapper : restore default handler 51 static void __cfaabi_sigdefault( int sig ) { 52 struct sigaction act; 53 54 act.sa_handler = SIG_DFL; 55 act.sa_flags = 0; 56 sigemptyset( &act.sa_mask ); 57 58 if ( sigaction( sig, &act, NULL ) == -1 ) { 59 __cfaabi_dbg_print_buffer_decl( 60 " __cfaabi_sigdefault( sig:%d ), problem reseting signal handler, error(%d) %s.\n", 61 sig, errno, strerror( errno ) 62 ); 63 _exit( EXIT_FAILURE ); 64 } 65 }
Note:
See TracChangeset
for help on using the changeset viewer.