static void on_cleanup(void) { in_cleanup = true; interrupted = false; call_atexit_callbacks(false); disconnect(); }
static void exit_or_abort(int exitcode, int elevel) { if (in_cleanup && FATAL > elevel) { /* oops, error in cleanup*/ call_atexit_callbacks(true); exit(exitcode); } else if (elevel >= FATAL && elevel <= PANIC) { /* on FATAL or PANIC */ call_atexit_callbacks(true); abort(); } else { /* normal exit */ exit(exitcode); } }
static void exit_or_abort(int exitcode) { if (in_cleanup) { /* oops, error in cleanup*/ call_atexit_callbacks(true); abort(); } else { /* normal exit */ exit(exitcode); } }