Merge branch 'origin/release-2020' into merge-release-2020-into-master
[alexxy/gromacs.git] / src / gromacs / utility / fatalerror.cpp
index 04127783fd14ecc1f5e2f9346ceee5e5a5aecee4..f29b400a807e489e70b8633a3d55e85279eff8d0 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016,2017 by the GROMACS development team.
+ * Copyright (c) 2013,2014,2015,2016,2017, The GROMACS development team.
  * Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
@@ -192,13 +192,16 @@ void gmx_exit_on_fatal_error(ExitType exitType, int returnValue)
     }
 #endif
 
-    if (exitType == ExitType_CleanExit)
+    if (!GMX_FAHCORE)
     {
-        std::exit(returnValue);
+        if (exitType == ExitType_CleanExit)
+        {
+            std::exit(returnValue);
+        }
+        // We cannot use std::exit() if other threads may still be executing, since that would cause
+        // destructors to be called for global objects that may still be in use elsewhere.
+        std::_Exit(returnValue);
     }
-    // We cannot use std::exit() if other threads may still be executing, since that would cause
-    // destructors to be called for global objects that may still be in use elsewhere.
-    std::_Exit(returnValue);
 }
 
 void gmx_fatal_mpi_va(int /*f_errno*/,