From ecac29429861a912bd061df799dbc54493966f98 Mon Sep 17 00:00:00 2001 From: Stewart Smith Date: Wed, 23 Nov 2016 11:38:29 +1100 Subject: [PATCH] run pollers in cpu_process_local_jobs() if running job synchonously In the event we only have 1 CPU thread, we run asynchronous jobs synchronously, and while we wait for them to finish, we run pollers. However, if the jobs themselves don't call pollers (e.g. by time_wait()) then we'll end up in long periods of not running pollers at all. To work around this, explicitly run pollers when we're the only CPU thread (i.e. when we run the job synchronously). Signed-off-by: Stewart Smith --- core/cpu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/core/cpu.c b/core/cpu.c index 62140eb9c64f..f83d91049cd0 100644 --- a/core/cpu.c +++ b/core/cpu.c @@ -403,6 +403,7 @@ void cpu_process_local_jobs(void) if (cpu == this_cpu()) { prlog_once(PR_DEBUG, "Processing jobs synchronously\n"); cpu_process_jobs(); + opal_run_pollers(); } }