X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Feventlog%2FEventLog.c;h=7026a2abaf425a861f3f0470fc64257c2d4367fc;hb=011680bdbd73c93f6fd8363aaef93f995ba8f5b1;hp=65eff8a0123ea51505d608c45734d1b730c55cbd;hpb=5407ad8e0a5c08ac5193c1a9ede2a12570baee0b;p=ghc-hetmet.git diff --git a/rts/eventlog/EventLog.c b/rts/eventlog/EventLog.c index 65eff8a..7026a2a 100644 --- a/rts/eventlog/EventLog.c +++ b/rts/eventlog/EventLog.c @@ -13,7 +13,6 @@ #include "Trace.h" #include "Capability.h" -#include "Trace.h" #include "RtsUtils.h" #include "Stats.h" #include "EventLog.h" @@ -64,6 +63,9 @@ char *EventDesc[] = { [EVENT_LOG_MSG] = "Log message", [EVENT_USER_MSG] = "User message", [EVENT_STARTUP] = "Startup", + [EVENT_GC_IDLE] = "GC idle", + [EVENT_GC_WORK] = "GC working", + [EVENT_GC_DONE] = "GC done", [EVENT_BLOCK_MARKER] = "Block marker" }; @@ -239,6 +241,9 @@ initEventLogging(void) case EVENT_GC_START: // (cap) case EVENT_GC_END: // (cap) case EVENT_STARTUP: + case EVENT_GC_IDLE: + case EVENT_GC_WORK: + case EVENT_GC_DONE: eventTypes[t].size = 0; break; @@ -393,6 +398,21 @@ postSchedEvent (Capability *cap, } } +void +postEvent (Capability *cap, EventTypeNum tag) +{ + EventsBuf *eb; + + eb = &capEventBuf[cap->no]; + + if (!hasRoomForEvent(eb, tag)) { + // Flush event buffer to make room for new event. + printAndClearEventBuf(eb); + } + + postEventHeader(eb, tag); +} + #define BUF 512 void postLogMsg(EventsBuf *eb, EventTypeNum type, char *msg, va_list ap) @@ -428,9 +448,9 @@ void postCapMsg(Capability *cap, char *msg, va_list ap) postLogMsg(&capEventBuf[cap->no], EVENT_LOG_MSG, msg, ap); } -void postUserMsg(Capability *cap, char *msg) +void postUserMsg(Capability *cap, char *msg, va_list ap) { - postLogMsg(&capEventBuf[cap->no], EVENT_USER_MSG, msg, NULL); + postLogMsg(&capEventBuf[cap->no], EVENT_USER_MSG, msg, ap); } void closeBlockMarker (EventsBuf *ebuf)