This patch fixes a problem in which fatal errors inside mutex-locked
regions (i.e. basically anything in the plugin) will cause it to hang up
trying to take the lock to clean everything up.
Using abort() instead of exit(1) bypasses the atexit handlers and solves
the problem.
OK for mainline?
Andrew
libgomp: fix hang on fatal error
Don't try to clean up if a fatal error occurs in libgomp. Typically the
cleanup is not reentrant so we end up hung on a lock.
libgomp/ChangeLog:
* error.c (gomp_vfatal): Use abort instead of exit.
diff --git a/libgomp/error.c b/libgomp/error.c
index 50ed85eedb1..25548c14a82 100644
--- a/libgomp/error.c
+++ b/libgomp/error.c
@@ -77,7 +77,7 @@ void
gomp_vfatal (const char *fmt, va_list list)
{
gomp_verror (fmt, list);
- exit (EXIT_FAILURE);
+ abort ();
}
void