Use message-passing to implement throwTo in the RTS
[ghc-hetmet.git] / rts / eventlog / EventLog.h
index 0358256..6ebf33d 100644 (file)
@@ -12,9 +12,9 @@
 #include "rts/EventLogFormat.h"
 #include "Capability.h"
 
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
 
-#ifdef EVENTLOG
+#ifdef TRACING
 
 /*
  * Descriptions of EventTags for events.
@@ -25,32 +25,47 @@ void initEventLogging(void);
 void endEventLogging(void);
 void freeEventLogging(void);
 
-void postEvent_(Capability *cap, EventTypeNum tag, StgThreadID id, StgWord64 other);
-
 /* 
- * Post an event to the capability's event buffer.
+ * Post a scheduler event to the capability's event buffer (an event
+ * that has an associated thread).
  */
-INLINE_HEADER void postEvent(Capability *cap, EventTypeNum tag, StgThreadID id, StgWord64 other)
-{
-    if (RtsFlags.EventLogFlags.doEventLogging) {
-        postEvent_(cap, tag, id, other);
-    }
-}
+void postSchedEvent(Capability *cap, EventTypeNum tag, 
+                    StgThreadID id, StgWord64 other);
+
+/*
+ * Post a nullary event.
+ */
+void postEvent(Capability *cap, EventTypeNum tag);
+
+void postMsg(char *msg, va_list ap);
+
+void postUserMsg(Capability *cap, char *msg, va_list ap);
+
+void postCapMsg(Capability *cap, char *msg, va_list ap);
+
+#else /* !TRACING */
+
+INLINE_HEADER void postSchedEvent (Capability *cap  STG_UNUSED,
+                                   EventTypeNum tag STG_UNUSED,
+                                   StgThreadID id   STG_UNUSED,
+                                   StgWord64 other  STG_UNUSED)
+{ /* nothing */ }
 
-void printAndClearEventLog(Capability *cap);
+INLINE_HEADER void postEvent (Capability *cap  STG_UNUSED,
+                              EventTypeNum tag STG_UNUSED)
+{ /* nothing */ }
 
-#else /* !EVENTLOG */
+INLINE_HEADER void postMsg (char *msg STG_UNUSED, 
+                            va_list ap STG_UNUSED)
+{ /* nothing */ }
 
-INLINE_HEADER void postEvent(Capability *cap  STG_UNUSED,
-                             EventTypeNum tag STG_UNUSED,
-                             StgThreadID id   STG_UNUSED,
-                             StgWord64 other  STG_UNUSED)
-{
-    /* nothing */
-}
+INLINE_HEADER void postCapMsg (Capability *cap STG_UNUSED,
+                               char *msg STG_UNUSED, 
+                               va_list ap STG_UNUSED)
+{ /* nothing */ }
 
 #endif
 
-#pragma GCC visibility pop
+END_RTS_PRIVATE
 
-#endif /* EVENTLOG_H */
+#endif /* TRACING_H */