summaryrefslogtreecommitdiff
path: root/rts/Trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Trace.c')
-rw-r--r--rts/Trace.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/rts/Trace.c b/rts/Trace.c
index 9fa8eb177b..a946f2c5d3 100644
--- a/rts/Trace.c
+++ b/rts/Trace.c
@@ -574,6 +574,52 @@ void traceSparkCounters_ (Capability *cap,
}
}
+void traceTaskCreate_ (Task *task,
+ Capability *cap)
+{
+#ifdef DEBUG
+ if (RtsFlags.TraceFlags.tracing == TRACE_STDERR) {
+ /* We currently don't do debug tracing of tasks but we must
+ test for TRACE_STDERR because of the !eventlog_enabled case. */
+ } else
+#endif
+ {
+ EventTaskId taskid = serialisableTaskId(task);
+ EventKernelThreadId tid = kernelThreadId();
+ postTaskCreateEvent(taskid, cap->no, tid);
+ }
+}
+
+void traceTaskMigrate_ (Task *task,
+ Capability *cap,
+ Capability *new_cap)
+{
+#ifdef DEBUG
+ if (RtsFlags.TraceFlags.tracing == TRACE_STDERR) {
+ /* We currently don't do debug tracing of tasks but we must
+ test for TRACE_STDERR because of the !eventlog_enabled case. */
+ } else
+#endif
+ {
+ EventTaskId taskid = serialisableTaskId(task);
+ postTaskMigrateEvent(taskid, cap->no, new_cap->no);
+ }
+}
+
+void traceTaskDelete_ (Task *task)
+{
+#ifdef DEBUG
+ if (RtsFlags.TraceFlags.tracing == TRACE_STDERR) {
+ /* We currently don't do debug tracing of tasks but we must
+ test for TRACE_STDERR because of the !eventlog_enabled case. */
+ } else
+#endif
+ {
+ EventTaskId taskid = serialisableTaskId(task);
+ postTaskDeleteEvent(taskid);
+ }
+}
+
#ifdef DEBUG
static void traceCap_stderr(Capability *cap, char *msg, va_list ap)
{