projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Minor
[ghc-hetmet.git]
/
rts
/
Threads.c
diff --git
a/rts/Threads.c
b/rts/Threads.c
index
f07b36a
..
7344134
100644
(file)
--- a/
rts/Threads.c
+++ b/
rts/Threads.c
@@
-217,7
+217,12
@@
removeThreadFromDeQueue (Capability *cap,
void
tryWakeupThread (Capability *cap, StgTSO *tso)
{
void
tryWakeupThread (Capability *cap, StgTSO *tso)
{
+ tryWakeupThread_(cap, deRefTSO(tso));
+}
+void
+tryWakeupThread_ (Capability *cap, StgTSO *tso)
+{
traceEventThreadWakeup (cap, tso, tso->cap->no);
#ifdef THREADED_RTS
traceEventThreadWakeup (cap, tso, tso->cap->no);
#ifdef THREADED_RTS
@@
-383,6
+388,7
@@
updateThunk (Capability *cap, StgTSO *tso, StgClosure *thunk, StgClosure *val)
i = thunk->header.info;
if (i != &stg_BLACKHOLE_info &&
i != &stg_CAF_BLACKHOLE_info &&
i = thunk->header.info;
if (i != &stg_BLACKHOLE_info &&
i != &stg_CAF_BLACKHOLE_info &&
+ i != &__stg_EAGER_BLACKHOLE_info &&
i != &stg_WHITEHOLE_info) {
updateWithIndirection(cap, thunk, val);
return;
i != &stg_WHITEHOLE_info) {
updateWithIndirection(cap, thunk, val);
return;
@@
-486,8
+492,8
@@
printThreadBlockage(StgTSO *tso)
case BlockedOnCCall:
debugBelch("is blocked on an external call");
break;
case BlockedOnCCall:
debugBelch("is blocked on an external call");
break;
- case BlockedOnCCall_NoUnblockExc:
- debugBelch("is blocked on an external call (exceptions were already blocked)");
+ case BlockedOnCCall_Interruptible:
+ debugBelch("is blocked on an external call (but may be interrupted)");
break;
case BlockedOnSTM:
debugBelch("is blocked on an STM operation");
break;
case BlockedOnSTM:
debugBelch("is blocked on an STM operation");