projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Comments only
[ghc-hetmet.git]
/
rts
/
Capability.c
diff --git
a/rts/Capability.c
b/rts/Capability.c
index
bd781e9
..
c37ec4e
100644
(file)
--- a/
rts/Capability.c
+++ b/
rts/Capability.c
@@
-394,7
+394,10
@@
releaseCapability_ (Capability* cap,
// give this Capability to the appropriate Task.
if (!emptyRunQueue(cap) && cap->run_queue_hd->bound) {
// Make sure we're not about to try to wake ourselves up
// give this Capability to the appropriate Task.
if (!emptyRunQueue(cap) && cap->run_queue_hd->bound) {
// Make sure we're not about to try to wake ourselves up
- ASSERT(task != cap->run_queue_hd->bound);
+ // ASSERT(task != cap->run_queue_hd->bound);
+ // assertion is false: in schedule() we force a yield after
+ // ThreadBlocked, but the thread may be back on the run queue
+ // by now.
task = cap->run_queue_hd->bound;
giveCapabilityToTask(cap,task);
return;
task = cap->run_queue_hd->bound;
giveCapabilityToTask(cap,task);
return;