From 0fd8019a702a276c0f0ca9f0c6a1968f2f03304b Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 20 Jul 2018 11:39:24 +0200 Subject: [PATCH] [dxvk] Add DxvkEvent::wait method --- src/dxvk/dxvk_event.cpp | 6 ++++++ src/dxvk/dxvk_event.h | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/dxvk/dxvk_event.cpp b/src/dxvk/dxvk_event.cpp index 0f2aff708..7d6fea769 100644 --- a/src/dxvk/dxvk_event.cpp +++ b/src/dxvk/dxvk_event.cpp @@ -26,5 +26,11 @@ namespace dxvk { std::unique_lock lock(m_mutex); return m_status; } + + + void DxvkEvent::wait() { + while (this->getStatus() != DxvkEventStatus::Signaled) + dxvk::this_thread::yield(); + } } \ No newline at end of file diff --git a/src/dxvk/dxvk_event.h b/src/dxvk/dxvk_event.h index 643a06d66..d652f066c 100644 --- a/src/dxvk/dxvk_event.h +++ b/src/dxvk/dxvk_event.h @@ -46,6 +46,15 @@ namespace dxvk { */ DxvkEventStatus getStatus(); + /** + * \brief Waits for event to get signaled + * + * Blocks the calling thread until another + * thread calls \ref signal for the current + * revision of the event. + */ + void wait(); + private: std::mutex m_mutex;