- if (eventsBuf->begin != NULL && eventsBuf->pos != eventsBuf->begin)
- {
- numBytes = eventsBuf->pos - eventsBuf->begin;
-
- debugTrace(DEBUG_eventlog,
- "printAndEventLog: numbytes %" FMT_Word64
- " bytes to fwrite()",
- numBytes);
-
- written = fwrite(eventsBuf->begin, 1, numBytes, event_log_file);
- if (written != numBytes) {
- debugBelch(
- "printAndClearEventLog: fwrite() failed, written=%" FMT_Word64
- " doesn't match numBytes=%" FMT_Word64, written, numBytes);
- return;
- }
-
- debugTrace(DEBUG_eventlog,
- "printAndClearEventLog: fwrite(): %" FMT_Word64
- " bytes written", written);
-
- resetEventsBuf(eventsBuf);
- flushCount++;
+ eb = &capEventBuf[cap->no];
+
+ if (!hasRoomForEvent(eb, tag)) {
+ // Flush event buffer to make room for new event.
+ printAndClearEventBuf(eb);