diff options
author | Ian Lynagh <igloo@earth.li> | 2012-07-14 15:29:31 +0100 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2012-07-14 15:29:31 +0100 |
commit | 6c00355911d1b4710e25348b79436d03d2d3911f (patch) | |
tree | 636eaca4015668405790be38479d3f556bbb9ef5 /rts/Schedule.c | |
parent | 75a3c1bc42e3617e47f85d279f69b463f4e69f49 (diff) | |
parent | 45c80482b537158bbe2d9b9f755ac3d3d02e73f5 (diff) | |
download | haskell-6c00355911d1b4710e25348b79436d03d2d3911f.tar.gz |
Merge remote branch 'mikolaj/dcoutts'
Diffstat (limited to 'rts/Schedule.c')
-rw-r--r-- | rts/Schedule.c | 13 |
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); |