summaryrefslogtreecommitdiff
path: root/rts/Schedule.c
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-07-14 15:29:31 +0100
committerIan Lynagh <igloo@earth.li>2012-07-14 15:29:31 +0100
commit6c00355911d1b4710e25348b79436d03d2d3911f (patch)
tree636eaca4015668405790be38479d3f556bbb9ef5 /rts/Schedule.c
parent75a3c1bc42e3617e47f85d279f69b463f4e69f49 (diff)
parent45c80482b537158bbe2d9b9f755ac3d3d02e73f5 (diff)
downloadhaskell-6c00355911d1b4710e25348b79436d03d2d3911f.tar.gz
Merge remote branch 'mikolaj/dcoutts'
Diffstat (limited to 'rts/Schedule.c')
-rw-r--r--rts/Schedule.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/rts/Schedule.c b/rts/Schedule.c
index 5a8c35f0cb..dee71c4676 100644
--- a/rts/Schedule.c
+++ b/rts/Schedule.c
@@ -1634,7 +1634,12 @@ delete_threads_and_gc:
while (!emptyRunQueue(tmp_cap)) {
tso = popRunQueue(tmp_cap);
migrateThread(tmp_cap, tso, dest_cap);
- if (tso->bound) { tso->bound->task->cap = dest_cap; }
+ if (tso->bound) {
+ traceTaskMigrate(tso->bound->task,
+ tso->bound->task->cap,
+ dest_cap);
+ tso->bound->task->cap = dest_cap;
+ }
}
}
}
@@ -1899,6 +1904,10 @@ forkProcess(HsStablePtr *entry
initTimer();
startTimer();
+ // TODO: need to trace various other things in the child
+ // like startup event, capabilities, process info etc
+ traceTaskCreate(task, cap);
+
#if defined(THREADED_RTS)
ioManagerStartCap(&cap);
#endif
@@ -2521,6 +2530,8 @@ performGC_(rtsBool force_major)
// associated with a particular Capability, and chained onto the
// suspended_ccalls queue.
task = newBoundTask();
+
+ // TODO: do we need to traceTask*() here?
waitForReturnCapability(&cap,task);
scheduleDoGC(&cap,task,force_major);