diff options
author | kruall <kruall@ydb.tech> | 2023-08-09 10:52:38 +0300 |
---|---|---|
committer | kruall <kruall@ydb.tech> | 2023-08-09 11:46:37 +0300 |
commit | f317e875044612f5945fb0251fb711d1124508cc (patch) | |
tree | 500d4cfd0afc6185067b85e720cb7bdcd5f37cad | |
parent | 67bdfaa8752032eac7ded95dc036061f8ddf2f4c (diff) | |
download | ydb-f317e875044612f5945fb0251fb711d1124508cc.tar.gz |
Check stop flag before getting activation, KIKIMr-18950
-rw-r--r-- | library/cpp/actors/core/executor_pool_basic.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/library/cpp/actors/core/executor_pool_basic.cpp b/library/cpp/actors/core/executor_pool_basic.cpp index 6bf21252f5..d7d0dcfead 100644 --- a/library/cpp/actors/core/executor_pool_basic.cpp +++ b/library/cpp/actors/core/executor_pool_basic.cpp @@ -247,7 +247,7 @@ namespace NActors { TAtomic x = AtomicGet(Semaphore); TSemaphore semaphore = TSemaphore::GetSemaphore(x); - do { + while (!RelaxedLoad(&StopFlag)) { if (!semaphore.OldSemaphore || semaphore.CurrentSleepThreadCount < 0) { if (workerId < 0 || !wctx.IsNeededToWaitNextActivation) { timers.HPNow = GetCycleCountFast(); @@ -286,7 +286,7 @@ namespace NActors { SpinLockPause(); x = AtomicGet(Semaphore); semaphore = TSemaphore::GetSemaphore(x); - } while (!RelaxedLoad(&StopFlag)); + } return 0; } |