Browse Source
Merge pull request #12028 from liamwhite/coretiming-shutdown
core_timing: lock event queue access
pull/15/merge
liamwhite
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
3 additions and
1 deletions
-
src/core/core_timing.cpp
-
src/core/core_timing.h
|
|
|
@ -76,6 +76,7 @@ void CoreTiming::Initialize(std::function<void()>&& on_thread_init_) { |
|
|
|
} |
|
|
|
|
|
|
|
void CoreTiming::ClearPendingEvents() { |
|
|
|
std::scoped_lock lock{basic_lock}; |
|
|
|
event_queue.clear(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -113,6 +114,7 @@ bool CoreTiming::IsRunning() const { |
|
|
|
} |
|
|
|
|
|
|
|
bool CoreTiming::HasPendingEvents() const { |
|
|
|
std::scoped_lock lock{basic_lock}; |
|
|
|
return !(wait_set && event_queue.empty()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -161,7 +161,7 @@ private: |
|
|
|
std::shared_ptr<EventType> ev_lost; |
|
|
|
Common::Event event{}; |
|
|
|
Common::Event pause_event{}; |
|
|
|
std::mutex basic_lock; |
|
|
|
mutable std::mutex basic_lock; |
|
|
|
std::mutex advance_lock; |
|
|
|
std::unique_ptr<std::jthread> timer_thread; |
|
|
|
std::atomic<bool> paused{}; |
|
|
|
|