diff options
| author | Ben Blum <bblum@andrew.cmu.edu> | 2012-07-11 20:00:58 -0400 |
|---|---|---|
| committer | Ben Blum <bblum@andrew.cmu.edu> | 2012-07-12 18:08:36 -0400 |
| commit | 343e9de8ef4ee9727f027c896ce99f09611b9603 (patch) | |
| tree | 203e9084453699cb8b7175a75438cfd5c9ed8d00 /src/rt/rust_task.cpp | |
| parent | b897696a3abde84e57cda3f6e4267be3b647835c (diff) | |
| download | rust-343e9de8ef4ee9727f027c896ce99f09611b9603.tar.gz rust-343e9de8ef4ee9727f027c896ce99f09611b9603.zip | |
Proper locking with blocked_on()/wakeup() in rust_port. Closes #2787. Closes #1923.
Diffstat (limited to 'src/rt/rust_task.cpp')
| -rw-r--r-- | src/rt/rust_task.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index fa05a713745..3d88c05b3ff 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -243,7 +243,7 @@ rust_task::must_fail_from_being_killed_inner() { // Only run this on the rust stack void rust_task::yield(bool *killed) { - // FIXME (#2787): clean this up + // FIXME (#2875): clean this up if (must_fail_from_being_killed()) { { scoped_lock with(lifecycle_lock); @@ -346,12 +346,11 @@ void rust_task::assert_is_running() assert(state == task_state_running); } -// FIXME (#2851, #2787): This is only used by rust_port/rust_port selector, -// and is inherently racy. Get rid of it. +// FIXME (#2851) Remove this code when rust_port goes away? bool rust_task::blocked_on(rust_cond *on) { - scoped_lock with(lifecycle_lock); + lifecycle_lock.must_have_lock(); return cond == on; } |
