about summary refs log tree commit diff
path: root/src/rt/rust_task.h
diff options
context:
space:
mode:
authorBen Blum <bblum@andrew.cmu.edu>2012-07-11 20:00:58 -0400
committerBen Blum <bblum@andrew.cmu.edu>2012-07-12 18:08:36 -0400
commit343e9de8ef4ee9727f027c896ce99f09611b9603 (patch)
tree203e9084453699cb8b7175a75438cfd5c9ed8d00 /src/rt/rust_task.h
parentb897696a3abde84e57cda3f6e4267be3b647835c (diff)
downloadrust-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.h6
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;
     }