*
* assert.c
* Assert code.
*
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* src/backend/utils/error/assert.c
*
* NOTE
* This should eventually work with elog()
*
* -------------------------------------------------------------------------
*/
#include "postgres.h"
#include "knl/knl_variable.h"
#include <unistd.h>
* ExceptionalCondition - Handles the failure of an Assert()
*/
void ExceptionalCondition(const char* conditionName, const char* errorType, const char* fileName, int lineNumber)
{
if (!PointerIsValid(conditionName) || !PointerIsValid(fileName) || !PointerIsValid(errorType)) {
write_stderr("TRAP: ExceptionalCondition: bad arguments\n");
} else {
write_stderr("TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n", errorType, conditionName, fileName, lineNumber);
}
fflush(stderr);
#ifdef SLEEP_ON_ASSERT
* It would be nice to use pg_usleep() here, but only does 2000 sec or 33
* minutes, which seems too short.
*/
sleep(1000000);
#endif
abort();
}