diff options
| author | Mohsen Zohrevandi <mohsen.zohrevandi@fortanix.com> | 2020-06-12 12:06:41 -0700 |
|---|---|---|
| committer | Mohsen Zohrevandi <mohsen.zohrevandi@fortanix.com> | 2020-06-12 12:06:41 -0700 |
| commit | d7dc64bdfea4fbf8974774800ab51e04eaa4f082 (patch) | |
| tree | 5d35c9a8d762b46cf08e4c8cd0696e9adec4c0a7 /src/libstd/sys/sgx/waitqueue.rs | |
| parent | c4b02659c16d2ad0ac36d2c8602edd002e559f7a (diff) | |
| download | rust-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.rs | 2 |
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(); |
