X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FTrace.h;h=21828d261f7e741e5bccb3d2f8ac86dfe4885959;hb=facfbf28a9bd4edeebc23e6d74a77a7ea83e5c61;hp=f422b5f8a55fc96e939286bfba377fc80f5424e4;hpb=5407ad8e0a5c08ac5193c1a9ede2a12570baee0b;p=ghc-hetmet.git diff --git a/rts/Trace.h b/rts/Trace.h index f422b5f..21828d2 100644 --- a/rts/Trace.h +++ b/rts/Trace.h @@ -79,6 +79,17 @@ void traceEnd (void); void traceSchedEvent_ (Capability *cap, EventTypeNum tag, StgTSO *tso, StgWord64 other); + +/* + * Record a nullary event + */ +#define traceEvent(cap, tag) \ + if (RTS_UNLIKELY(TRACE_sched)) { \ + traceEvent_(cap, tag); \ + } + +void traceEvent_ (Capability *cap, EventTypeNum tag); + // variadic macros are C99, and supported by gcc. However, the // ##__VA_ARGS syntax is a gcc extension, which allows the variable // argument list to be empty (see gcc docs for details). @@ -133,6 +144,7 @@ void traceThreadStatus_ (StgTSO *tso); #else /* !TRACING */ #define traceSchedEvent(cap, tag, tso, other) /* nothing */ +#define traceEvent(cap, tag) /* nothing */ #define traceCap(class, cap, msg, ...) /* nothing */ #define trace(class, msg, ...) /* nothing */ #define debugTrace(class, str, ...) /* nothing */