Fixed lost signal notifications.

This commit is contained in:
Michael Bebenita
2010-09-08 22:20:31 -07:00
parent 743ca289b6
commit c877f31730

View File

@@ -22,8 +22,8 @@ rust_kernel::create_domain(const rust_crate *crate, const char *name) {
message_queue->associate(handle); message_queue->associate(handle);
domains.append(dom); domains.append(dom);
message_queues.append(message_queue); message_queues.append(message_queue);
_kernel_lock.unlock();
_kernel_lock.signal(); _kernel_lock.signal();
_kernel_lock.unlock();
return handle; return handle;
} }
@@ -37,8 +37,8 @@ rust_kernel::destroy_domain(rust_dom *dom) {
rust_srv *srv = dom->srv; rust_srv *srv = dom->srv;
delete dom; delete dom;
delete srv; delete srv;
_kernel_lock.unlock();
_kernel_lock.signal(); _kernel_lock.signal();
_kernel_lock.unlock();
} }
rust_handle<rust_dom> * rust_handle<rust_dom> *
@@ -161,7 +161,9 @@ void
rust_kernel::terminate_kernel_loop() { rust_kernel::terminate_kernel_loop() {
log(rust_log::KERN, "terminating kernel loop"); log(rust_log::KERN, "terminating kernel loop");
_interrupt_kernel_loop = true; _interrupt_kernel_loop = true;
_kernel_lock.lock();
_kernel_lock.signal(); _kernel_lock.signal();
_kernel_lock.unlock();
join(); join();
} }