src/share/vm/trace/traceEventClasses.xsl
Print this page
rev 4501 : 8014478: EnableTracing: output from multiple threads may be mixed together
Reviewed-by: dholmes, rbackman
Contributed-by: yunda.mly@taobao.com
@@ -117,10 +117,17 @@
static const TraceEventId eventId = <xsl:value-of select="concat('Trace', @id, 'Event')"/>;
private:
<xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-fields"/>
+ void writeEventContent(void) {
+ TraceStream ts(*tty);
+ ts.print("<xsl:value-of select="@label"/>: [");
+<xsl:apply-templates select="value|structvalue" mode="write-data"/>
+ ts.print("]\n");
+ }
+
public:
<xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-setters"/>
bool should_write(void) {
return true;
@@ -130,15 +137,18 @@
</xsl:text>
<xsl:value-of select="concat(' Event', @id, '(EventStartTime timing=TIMED) : TraceEvent<Event', @id, '>(timing) {}', $newline)"/>
void writeEvent(void) {
ResourceMark rm;
HandleMark hm;
- TraceStream ts(*tty);
- ts.print("<xsl:value-of select="@label"/>: [");
-<xsl:apply-templates select="value|structvalue" mode="write-data"/>
- ts.print("]\n");
+ if (UseLockedTracing) {
+ ttyLocker lock;
+ writeEventContent();
+ } else {
+ writeEventContent();
}
+ }
+
};
</xsl:template>
<xsl:template match="value|transition_value|relation" mode="write-empty-setters">