From 736d37f0c515316d1cba759301d92d7503895ea5 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Thu, 9 Oct 2008 08:51:18 +0000 Subject: [PATCH] undo incorrect assertion, and fix comments --- rts/RaiseAsync.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c index 74e9dba..b23c6c7 100644 --- a/rts/RaiseAsync.c +++ b/rts/RaiseAsync.c @@ -576,12 +576,8 @@ performBlockedException (Capability *cap, StgTSO *source, StgTSO *target) This is for use when we raise an exception in another thread, which may be blocked. - Precondition: we have exclusive access to the TSO, which entails - holding a lock on the object that owns the queue, if the TSO is - blocked. e.g. if the thread is blocked on an MVar, we must hold a - lock on the MVar before calling removeFromQueues(). - - This has nothing to do with the UnblockThread event in GranSim. -- HWL + Precondition: we have exclusive access to the TSO, via the same set + of conditions as throwToSingleThreaded() (c.f.). -------------------------------------------------------------------------- */ static void @@ -606,9 +602,6 @@ removeFromQueues(Capability *cap, StgTSO *tso) goto done; case BlockedOnBlackHole: - // we have exclusive access to this TSO, which implies that we - // must hold sched_mutex: - ASSERT_LOCK_HELD(&sched_mutex); removeThreadFromQueue(cap, &blackhole_queue, tso); goto done; -- 1.7.10.4