mirror of https://github.com/rust-lang/rust.git
core: Fix dec/inc_kernel_live_count mixup
This commit is contained in:
parent
ebd20b7944
commit
0db527e2f8
|
@ -40,12 +40,12 @@ pub unsafe fn weaken_task(f: &fn(Port<ShutdownMsg>)) {
|
||||||
let task = get_task_id();
|
let task = get_task_id();
|
||||||
// Expect the weak task service to be alive
|
// Expect the weak task service to be alive
|
||||||
assert service.try_send(RegisterWeakTask(task, shutdown_chan));
|
assert service.try_send(RegisterWeakTask(task, shutdown_chan));
|
||||||
unsafe { rust_inc_kernel_live_count(); }
|
unsafe { rust_dec_kernel_live_count(); }
|
||||||
do fn&() {
|
do fn&() {
|
||||||
let shutdown_port = swap_unwrap(&mut *shutdown_port);
|
let shutdown_port = swap_unwrap(&mut *shutdown_port);
|
||||||
f(shutdown_port)
|
f(shutdown_port)
|
||||||
}.finally || {
|
}.finally || {
|
||||||
unsafe { rust_dec_kernel_live_count(); }
|
unsafe { rust_inc_kernel_live_count(); }
|
||||||
// Service my have already exited
|
// Service my have already exited
|
||||||
service.send(UnregisterWeakTask(task));
|
service.send(UnregisterWeakTask(task));
|
||||||
}
|
}
|
||||||
|
@ -78,11 +78,11 @@ fn create_global_service() -> ~WeakTaskService {
|
||||||
let port = swap_unwrap(&mut *port);
|
let port = swap_unwrap(&mut *port);
|
||||||
// The weak task service is itself a weak task
|
// The weak task service is itself a weak task
|
||||||
debug!("weakening the weak service task");
|
debug!("weakening the weak service task");
|
||||||
unsafe { rust_inc_kernel_live_count(); }
|
unsafe { rust_dec_kernel_live_count(); }
|
||||||
run_weak_task_service(port);
|
run_weak_task_service(port);
|
||||||
}.finally {
|
}.finally {
|
||||||
debug!("unweakening the weak service task");
|
debug!("unweakening the weak service task");
|
||||||
unsafe { rust_dec_kernel_live_count(); }
|
unsafe { rust_inc_kernel_live_count(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue