From 65f3e390e814f84fe745d1894cea7e2f6c881ec3 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Wed, 6 Feb 2019 20:58:21 +0100 Subject: fixes #10584 [backport] --- lib/pure/concurrency/threadpool.nim | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/pure/concurrency') diff --git a/lib/pure/concurrency/threadpool.nim b/lib/pure/concurrency/threadpool.nim index 9c9425d9f..4846c610f 100644 --- a/lib/pure/concurrency/threadpool.nim +++ b/lib/pure/concurrency/threadpool.nim @@ -320,6 +320,10 @@ gSomeReady.initSemaphore() proc slave(w: ptr Worker) {.thread.} = isSlave = true while true: + if w.shutdown: + w.shutdown = false + atomicDec currentPoolSize + break when declared(atomicStoreN): atomicStoreN(addr(w.ready), true, ATOMIC_SEQ_CST) else: @@ -340,9 +344,6 @@ proc slave(w: ptr Worker) {.thread.} = dec numSlavesRunning if w.q.len != 0: w.cleanFlowVars - if w.shutdown: - w.shutdown = false - atomicDec currentPoolSize proc distinguishedSlave(w: ptr Worker) {.thread.} = while true: -- cgit 1.4.1-2-gfad0