From 6310fada8fe4f5fd197d29ed3fe6073f9afc5c87 Mon Sep 17 00:00:00 2001 From: bangerth Date: Wed, 15 Dec 2010 15:48:16 +0000 Subject: [PATCH] Increase wait time even more... git-svn-id: https://svn.dealii.org/trunk@22972 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/tests.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/tests.h b/tests/tests.h index 51ff270dd3..4427d4087e 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -115,13 +115,17 @@ set_grain_sizes; -// spawn a thread that terminates the program after a certain time given by -// the environment variable WALLTIME (times a factor to account for the fact -// that we run on multicore systems where things may take longer). this makes +// spawn a thread that terminates the program after a certain time +// given by the environment variable WALLTIME (times a factor to +// account for the fact that we run on multicore systems where things +// may take longer -- let's take 4*n_cpus as a factor). this makes // sure we don't let jobs that deadlock on some mutex hang around -// forever. note that this is orthogonal to using "ulimit" in Makefile.rules, -// which only affects CPU time and consequently works on infinite loops but -// not deadlocks +// forever. note that this is orthogonal to using "ulimit" in +// Makefile.rules, which only affects CPU time and consequently works +// on infinite loops but not deadlocks +// +// the actual sleep time isn't all that important. the point is that +// we need to kill deadlocked threads at one point, whenever that is #ifdef DEAL_II_USE_MT struct DeadlockKiller @@ -138,7 +142,7 @@ struct DeadlockKiller conv >> delay; if (conv) { - sleep (delay*multithread_info.n_cpus); + sleep (delay*multithread_info.n_cpus*4); std::cerr << "Time's up: Killing job because it overran its allowed walltime" << std::endl; std::abort (); -- 2.39.5