about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBen Blum <bblum@andrew.cmu.edu>2012-07-25 00:53:43 -0400
committerBen Blum <bblum@andrew.cmu.edu>2012-07-25 13:22:43 -0400
commitc68f2d9aab7e573824d7055a6c6f4783a53dc3f8 (patch)
treeb82238e4f030415a8ff1dfe035aa896548ed0090 /src
parentd9e8efca1946b658546d4973250dc4a34f914b94 (diff)
downloadrust-c68f2d9aab7e573824d7055a6c6f4783a53dc3f8.tar.gz
rust-c68f2d9aab7e573824d7055a6c6f4783a53dc3f8.zip
Remove notification channels in runtime (closes #1078)
Diffstat (limited to 'src')
-rw-r--r--src/rt/rust_builtin.cpp5
-rw-r--r--src/rt/rust_task.cpp26
-rw-r--r--src/rt/rust_task.h6
3 files changed, 0 insertions, 37 deletions
diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp
index f80e2e822c0..f9d1f71f0ac 100644
--- a/src/rt/rust_builtin.cpp
+++ b/src/rt/rust_builtin.cpp
@@ -637,11 +637,6 @@ rust_new_task_in_sched(rust_sched_id id) {
     return new_task_common(sched, task);
 }
 
-extern "C" CDECL void
-rust_task_config_notify(rust_task *target, rust_port_id *port) {
-    target->config_notify(*port);
-}
-
 extern "C" rust_task *
 rust_get_task() {
     return rust_get_current_task();
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp
index e7a18e90461..ab07f317550 100644
--- a/src/rt/rust_task.cpp
+++ b/src/rt/rust_task.cpp
@@ -15,7 +15,6 @@ rust_task::rust_task(rust_sched_loop *sched_loop, rust_task_state state,
                      const char *name, size_t init_stack_sz) :
     ref_count(1),
     id(0),
-    notify_enabled(false),
     stk(NULL),
     runtime_sp(0),
     sched(sched_loop->sched),
@@ -141,8 +140,6 @@ cleanup_task(cleanup_args *args) {
 
     task->die();
 
-    task->notify(!threw_exception);
-
 #ifdef __WIN32__
     assert(!threw_exception && "No exception-handling yet on windows builds");
 #endif
@@ -454,23 +451,6 @@ rust_task::calloc(size_t size, const char *tag) {
     return local_region.calloc(size, tag);
 }
 
-void
-rust_task::notify(bool success) {
-    // FIXME (#1078) Do this in rust code
-    if(notify_enabled) {
-        rust_port *target_port =
-            kernel->get_port_by_id(notify_port);
-        if(target_port) {
-            task_notification msg;
-            msg.id = id;
-            msg.result = !success ? tr_failure : tr_success;
-
-            target_port->send(&msg);
-            target_port->deref();
-        }
-    }
-}
-
 size_t
 rust_task::get_next_stack_size(size_t min, size_t current, size_t requested) {
     LOG(this, mem, "calculating new stack size for 0x%" PRIxPTR, this);
@@ -636,12 +616,6 @@ rust_task::delete_all_stacks() {
     }
 }
 
-void
-rust_task::config_notify(rust_port_id port) {
-    notify_enabled = true;
-    notify_port = port;
-}
-
 /*
 Returns true if we're currently running on the Rust stack
  */
diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h
index 8df119565f0..3b8e78cf1dd 100644
--- a/src/rt/rust_task.h
+++ b/src/rt/rust_task.h
@@ -125,8 +125,6 @@ rust_task : public kernel_owned<rust_task>
     RUST_ATOMIC_REFCOUNT();
 
     rust_task_id id;
-    bool notify_enabled;
-    rust_port_id notify_port;
 
     context ctx;
     stk_seg *stk;
@@ -285,8 +283,6 @@ public:
     // not at all safe.
     intptr_t get_ref_count() const { return ref_count; }
 
-    void notify(bool success);
-
     void *next_stack(size_t stk_sz, void *args_addr, size_t args_sz);
     void prev_stack();
     void record_stack_limit();
@@ -296,8 +292,6 @@ public:
     void check_stack_canary();
     void delete_all_stacks();
 
-    void config_notify(rust_port_id port);
-
     void call_on_c_stack(void *args, void *fn_ptr);
     void call_on_rust_stack(void *args, void *fn_ptr);
     bool have_c_stack() { return c_stack != NULL; }