static void _cb_volume_stopped_for_shutdown(volume_t *v, void *arg) { void (* shutdown_cb) (volume_t *) = arg; #if DEBUG_VOLMGR LOG_VOL("Volume %s has been stopped for shutdown", v->mount_point); #endif shutdown_cb(v); }
int signals_poll(void) { int sig; if (gotsignal[SIGINT] || gotsignal[SIGQUIT] || gotsignal[SIGTERM]) { if (shutdown_cb) shutdown_cb(EC_TEMPFAIL); else exit(EC_TEMPFAIL); } for (sig = 1 ; sig < _NSIG ; sig++) { if (gotsignal[sig]) return sig; } return 0; }
int signals_poll(void) { switch (gotsignal) { case SIGINT: case SIGQUIT: if (shutdown_cb) shutdown_cb(EC_TEMPFAIL); else exit(EC_TEMPFAIL); break; default: return gotsignal; break; } return 0; /* compiler warning stupidity */ }