eventlog: Fix various races
Previously the eventlog infrastructure had a couple of races that could pop up when using the startEventLog/endEventLog interfaces. In particular, stopping and then later restarting logging could result in data preceding the eventlog header, breaking the integrity of the stream. To fix this we rework the invariants regarding the eventlog and generally tighten up the concurrency control surrounding starting and stopping of logging. We also fix an unrelated bug, wherein log events from disabled capabilities could end up never flushed.
Showing
- rts/RtsStartup.c 4 additions, 0 deletionsrts/RtsStartup.c
- rts/Trace.h 13 additions, 1 deletionrts/Trace.h
- rts/eventlog/EventLog.c 116 additions, 18 deletionsrts/eventlog/EventLog.c
- rts/eventlog/EventLog.h 3 additions, 0 deletionsrts/eventlog/EventLog.h
- testsuite/tests/rts/InitEventLogging.stdout 0 additions, 1 deletiontestsuite/tests/rts/InitEventLogging.stdout
Loading
Please register or sign in to comment