From 33b5ed322d4de2489dfb614bf8f77cd6472de477 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 7 Sep 2021 11:13:03 -0400 Subject: rts: Factor out TRACE_ cache update logic Just a small refactoring to perhaps enable code reuse later. --- rts/Trace.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/rts/Trace.c b/rts/Trace.c index 8f2877a536..dace0970e6 100644 --- a/rts/Trace.c +++ b/rts/Trace.c @@ -49,12 +49,12 @@ static void traceCap_stderr(Capability *cap, char *msg, ...); Starting up / shutting down the tracing facilities --------------------------------------------------------------------------- */ -void initTracing (void) +/* + * Update the TRACE_* globals. Must be called whenever RtsFlags.TraceFlags is + * modified. + */ +static void updateTraceFlagCache (void) { -#if defined(THREADED_RTS) - initMutex(&trace_utx); -#endif - // -Ds turns on scheduler tracing too TRACE_sched = RtsFlags.TraceFlags.scheduler || @@ -65,9 +65,6 @@ void initTracing (void) RtsFlags.TraceFlags.gc || RtsFlags.DebugFlags.gc || RtsFlags.DebugFlags.scheduler; - if (TRACE_gc && RtsFlags.GcFlags.giveStats == NO_GC_STATS) { - RtsFlags.GcFlags.giveStats = COLLECT_GC_STATS; - } TRACE_nonmoving_gc = RtsFlags.TraceFlags.nonmoving_gc; @@ -90,6 +87,19 @@ void initTracing (void) TRACE_spark_sampled || TRACE_spark_full || TRACE_user; +} + +void initTracing (void) +{ +#if defined(THREADED_RTS) + initMutex(&trace_utx); +#endif + + updateTraceFlagCache(); + + if (TRACE_gc && RtsFlags.GcFlags.giveStats == NO_GC_STATS) { + RtsFlags.GcFlags.giveStats = COLLECT_GC_STATS; + } /* Note: we can have any of the TRACE_* flags turned on even when eventlog_enabled is off. In the DEBUG way we may be tracing to stderr. -- cgit v1.2.1