diff options
| author | zousar <[email protected]> | 2025-08-05 14:58:08 -0600 |
|---|---|---|
| committer | zousar <[email protected]> | 2025-08-05 14:58:08 -0600 |
| commit | 7ddededb31c9b3415d4d85f0b284e5bf45c723b9 (patch) | |
| tree | e908f97766720550b7d3d4e8553b3c83132c0735 /src/zenutil/parallelwork.cpp | |
| parent | xmake precommit (diff) | |
| parent | de/stringbuilder safety (#456) (diff) | |
| download | zen-7ddededb31c9b3415d4d85f0b284e5bf45c723b9.tar.xz zen-7ddededb31c9b3415d4d85f0b284e5bf45c723b9.zip | |
Merge branch 'main' into zs/put-overwrite-policy
Diffstat (limited to 'src/zenutil/parallelwork.cpp')
| -rw-r--r-- | src/zenutil/parallelwork.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/zenutil/parallelwork.cpp b/src/zenutil/parallelwork.cpp index aa806438b..1edca5050 100644 --- a/src/zenutil/parallelwork.cpp +++ b/src/zenutil/parallelwork.cpp @@ -33,6 +33,7 @@ ParallelWork::~ParallelWork() "ParallelWork disposed without explicit wait for completion, likely caused by an exception, waiting for dispatched threads " "to complete"); m_PendingWork.CountDown(); + m_DispatchComplete = true; } m_PendingWork.Wait(); ptrdiff_t RemainingWork = m_PendingWork.Remaining(); @@ -82,10 +83,9 @@ void ParallelWork::Wait(int32_t UpdateIntervalMS, UpdateCallback&& UpdateCallback) { ZEN_ASSERT(!m_DispatchComplete); - m_DispatchComplete = true; - ZEN_ASSERT(m_PendingWork.Remaining() > 0); m_PendingWork.CountDown(); + m_DispatchComplete = true; while (!m_PendingWork.Wait(UpdateIntervalMS)) { @@ -99,10 +99,10 @@ void ParallelWork::Wait() { ZEN_ASSERT(!m_DispatchComplete); - m_DispatchComplete = true; - ZEN_ASSERT(m_PendingWork.Remaining() > 0); m_PendingWork.CountDown(); + m_DispatchComplete = true; + m_PendingWork.Wait(); RethrowErrors(); |