diff options
| author | Michael Bebenita <mbebenita@mozilla.com> | 2010-09-08 22:20:31 -0700 |
|---|---|---|
| committer | Michael Bebenita <mbebenita@mozilla.com> | 2010-09-08 22:20:31 -0700 |
| commit | c877f31730b3cf156d0b36355ebc99d2e85e455b (patch) | |
| tree | 45ed0d51aa8205b6051523fddd4eb6ecdc820a6c /src/rt/rust_kernel.cpp | |
| parent | 743ca289b6cec6dafb1d1952646b7ec73c63cf07 (diff) | |
| download | rust-c877f31730b3cf156d0b36355ebc99d2e85e455b.tar.gz rust-c877f31730b3cf156d0b36355ebc99d2e85e455b.zip | |
Fixed lost signal notifications.
Diffstat (limited to 'src/rt/rust_kernel.cpp')
| -rw-r--r-- | src/rt/rust_kernel.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rt/rust_kernel.cpp b/src/rt/rust_kernel.cpp index b94c6c1aca0..b70cdcbaf34 100644 --- a/src/rt/rust_kernel.cpp +++ b/src/rt/rust_kernel.cpp @@ -22,8 +22,8 @@ rust_kernel::create_domain(const rust_crate *crate, const char *name) { message_queue->associate(handle); domains.append(dom); message_queues.append(message_queue); - _kernel_lock.unlock(); _kernel_lock.signal(); + _kernel_lock.unlock(); return handle; } @@ -37,8 +37,8 @@ rust_kernel::destroy_domain(rust_dom *dom) { rust_srv *srv = dom->srv; delete dom; delete srv; - _kernel_lock.unlock(); _kernel_lock.signal(); + _kernel_lock.unlock(); } rust_handle<rust_dom> * @@ -161,7 +161,9 @@ void rust_kernel::terminate_kernel_loop() { log(rust_log::KERN, "terminating kernel loop"); _interrupt_kernel_loop = true; + _kernel_lock.lock(); _kernel_lock.signal(); + _kernel_lock.unlock(); join(); } |
