static void signal_handler( int s ) { if( s == SIGINT ) { signal( SIGINT, SIG_IGN); trackerlogic_deinit(); exit( 0 ); } else if( s == SIGALRM ) { g_now = time(NULL); alarm(5); } }
static void signal_handler( int s ) { if( s == SIGINT ) { /* Any new interrupt signal quits the application */ signal( SIGINT, SIG_DFL); /* Tell all other threads to not acquire any new lock on a bucket but cancel their operations and return */ g_opentracker_running = 0; trackerlogic_deinit(); #ifdef WANT_SYSLOGS closelog(); #endif exit( 0 ); } else if( s == SIGALRM ) { /* Maintain our copy of the clock. time() on BSDs is very expensive. */ g_now_seconds = time(NULL); alarm(5); } }