mirror of https://github.com/facebook/rocksdb.git
~SleepingBackgroundTask() to wake up the sleeping task (#11036)
Summary: Right now, in unit tests, when background tests are sleeping using SleepingBackgroundTask, and the test exits with test assertion failure, the process will hang and it might prevent us to see the test failure message in CI runs. Try to wake up the thread so that the test can exit correctly. Pull Request resolved: https://github.com/facebook/rocksdb/pull/11036 Test Plan: Watch CI succeeds Reviewed By: riversand963 Differential Revision: D42020489 fbshipit-source-id: 5b8441b18d5f67bbb3ade59a1225a8d3c860c2eb
This commit is contained in:
parent
6a8920f988
commit
1928902a6f
|
@ -363,6 +363,16 @@ class SleepingBackgroundTask {
|
|||
done_with_sleep_(false),
|
||||
sleeping_(false) {}
|
||||
|
||||
~SleepingBackgroundTask() {
|
||||
MutexLock l(&mutex_);
|
||||
should_sleep_ = false;
|
||||
while (sleeping_) {
|
||||
assert(!should_sleep_);
|
||||
bg_cv_.SignalAll();
|
||||
bg_cv_.Wait();
|
||||
}
|
||||
}
|
||||
|
||||
bool IsSleeping() {
|
||||
MutexLock l(&mutex_);
|
||||
return sleeping_;
|
||||
|
|
Loading…
Reference in New Issue