diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-02-06 20:58:21 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-02-06 20:58:28 +0100 |
commit | 65f3e390e814f84fe745d1894cea7e2f6c881ec3 (patch) | |
tree | 887ee0639891a80d9255db61f1ec8a868110683c /lib/pure/concurrency | |
parent | bfb2ad507802cf91384118c208bcdce8bd07fb4b (diff) | |
download | Nim-65f3e390e814f84fe745d1894cea7e2f6c881ec3.tar.gz |
fixes #10584 [backport]
Diffstat (limited to 'lib/pure/concurrency')
-rw-r--r-- | lib/pure/concurrency/threadpool.nim | 7 |
1 files changed, 4 insertions, 3 deletions
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: |