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.h | |
| 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.h')
| -rw-r--r-- | src/rt/rust_task.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h index ba327822c37..1d87a0ed56c 100644 --- a/src/rt/rust_task.h +++ b/src/rt/rust_task.h @@ -226,8 +226,11 @@ private: char const *file, size_t line); + friend class rust_port; + friend class rust_port_selector; bool block_inner(rust_cond *on, const char* name); void wakeup_inner(rust_cond *from); + bool blocked_on(rust_cond *cond); public: @@ -243,7 +246,6 @@ public: void *args); void start(); void assert_is_running(); - bool blocked_on(rust_cond *cond); // FIXME (#2851) Get rid of this. void *malloc(size_t sz, const char *tag, type_desc *td=0); void *realloc(void *data, size_t sz); @@ -435,7 +437,7 @@ rust_task::call_on_rust_stack(void *args, void *fn_ptr) { bool had_reentered_rust_stack = reentered_rust_stack; { - // FIXME (#2787) This must be racy. Figure it out. + // FIXME (#2875) This must be racy. Figure it out. scoped_lock with(lifecycle_lock); reentered_rust_stack = true; } |
