about summary refs log tree commit diff
path: root/src/libstd/sys/sgx/waitqueue.rs
diff options
context:
space:
mode:
authorMohsen Zohrevandi <mohsen.zohrevandi@fortanix.com>2020-06-12 12:06:41 -0700
committerMohsen Zohrevandi <mohsen.zohrevandi@fortanix.com>2020-06-12 12:06:41 -0700
commitd7dc64bdfea4fbf8974774800ab51e04eaa4f082 (patch)
tree5d35c9a8d762b46cf08e4c8cd0696e9adec4c0a7 /src/libstd/sys/sgx/waitqueue.rs
parentc4b02659c16d2ad0ac36d2c8602edd002e559f7a (diff)
downloadrust-d7dc64bdfea4fbf8974774800ab51e04eaa4f082.tar.gz
rust-d7dc64bdfea4fbf8974774800ab51e04eaa4f082.zip
Handle spurious wakeups in wait_timeout_sgx
Diffstat (limited to 'src/libstd/sys/sgx/waitqueue.rs')
-rw-r--r--src/libstd/sys/sgx/waitqueue.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libstd/sys/sgx/waitqueue.rs b/src/libstd/sys/sgx/waitqueue.rs
index 71d1c22cd61..36b3f5bcc41 100644
--- a/src/libstd/sys/sgx/waitqueue.rs
+++ b/src/libstd/sys/sgx/waitqueue.rs
@@ -177,7 +177,7 @@ impl WaitQueue {
             let entry_lock = lock.lock().queue.inner.push(&mut entry);
             before_wait();
             // don't panic, this would invalidate `entry` during unwinding
-            wait_timeout_sgx(EV_UNPARK, timeout);
+            wait_timeout_sgx(EV_UNPARK, timeout, || entry_lock.lock().wake);
             // acquire the wait queue's lock first to avoid deadlock.
             let mut guard = lock.lock();
             let entry_guard = entry_lock.lock();