diff options
| author | Michael Bebenita <[email protected]> | 2010-08-27 18:26:36 -0700 |
|---|---|---|
| committer | Michael Bebenita <[email protected]> | 2010-09-07 18:41:07 -0700 |
| commit | f8ff013e3cc737b92b5a140dfd0ddcc5ab6773d9 (patch) | |
| tree | 84daaf59d1eb899021e681927e1103cf08b91dd5 /src/rt/rust_upcall.cpp | |
| parent | Initial support for a global crate metadata cache (diff) | |
| download | rust-f8ff013e3cc737b92b5a140dfd0ddcc5ab6773d9.tar.xz rust-f8ff013e3cc737b92b5a140dfd0ddcc5ab6773d9.zip | |
Added a few utility classes, cleaned up the include order of .h files, and started to make the Rust kernel own domain message queues rather than the Rust domains themselves.
Diffstat (limited to 'src/rt/rust_upcall.cpp')
| -rw-r--r-- | src/rt/rust_upcall.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/rt/rust_upcall.cpp b/src/rt/rust_upcall.cpp index 954e7a13..0e3961bc 100644 --- a/src/rt/rust_upcall.cpp +++ b/src/rt/rust_upcall.cpp @@ -567,11 +567,9 @@ static void *rust_thread_start(void *ptr) // Start a new rust main loop for this thread. dom->start_main_loop(); - rust_srv *srv = dom->srv; + srv->kernel->deregister_domain(dom); delete dom; - delete srv; - return 0; } @@ -611,10 +609,10 @@ upcall_new_thread(rust_task *task, const char *name) { LOG_UPCALL_ENTRY(task); rust_dom *old_dom = task->dom; - rust_dom *new_dom = new rust_dom(old_dom->srv->clone(), + rust_dom *new_dom = new rust_dom(old_dom->srv, old_dom->root_crate, name); - + old_dom->srv->kernel->register_domain(new_dom); task->log(rust_log::UPCALL | rust_log::MEM, "upcall new_thread(%s) = dom 0x%" PRIxPTR " task 0x%" PRIxPTR, name, new_dom, new_dom->root_task); |