From f3c79c4026740ea2db0065ae14339d6586918a47 Mon Sep 17 00:00:00 2001 From: Ben Blum Date: Mon, 15 Jul 2013 15:32:35 -0400 Subject: Enable taskgroup code for newsched spawns. --- src/libstd/rt/comm.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/libstd/rt') diff --git a/src/libstd/rt/comm.rs b/src/libstd/rt/comm.rs index 46c99d21d9d..f098f8b2767 100644 --- a/src/libstd/rt/comm.rs +++ b/src/libstd/rt/comm.rs @@ -286,8 +286,14 @@ impl Drop for PortOneHack { STATE_ONE => { let _packet: ~Packet = cast::transmute(this.void_packet); } - _ => { - util::unreachable() + task_as_state => { + // This case occurs during unwinding, when the blocked + // receiver was killed awake. The task can't still be + // blocked (we are it), but we need to free the handle. + let recvr = BlockedTask::cast_from_uint(task_as_state); + // FIXME(#7554)(bblum): Make this cfg(test) dependent. + // in a later commit. + assert!(recvr.wake().is_none()); } } } -- cgit 1.4.1-3-g733a5