Beispiel #1
0
static void
on_cleanup(void)
{
	in_cleanup = true;
	interrupted = false;
	call_atexit_callbacks(false);
	disconnect();
}
Beispiel #2
0
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);
	}
}
Beispiel #3
0
static void
exit_or_abort(int exitcode)
{
	if (in_cleanup)
	{
		/* oops, error in cleanup*/
		call_atexit_callbacks(true);
		abort();
	}
	else
	{
		/* normal exit */
		exit(exitcode);
	}
}