8153527: break_tty_lock_for_safepoint causes "assert(false) failed: bad tag in log" and broken compile log

Retake tty_lock before printing closing tag in print_optoassembly

Reviewed-by: kvn
This commit is contained in:
Nils Eliasson 2016-04-22 16:05:00 +02:00
parent 90d0e9a566
commit 24d3db305c

View File

@ -1548,6 +1548,10 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) {
}
dump_asm(node_offsets, node_offset_limit);
if (xtty != NULL) {
// print_metadata and dump_asm above may safepoint which makes us loose the ttylock.
// Retake lock too make sure the end tag is coherent, and that xmlStream->pop_tag is done
// thread safe
ttyLocker ttyl2;
xtty->tail("opto_assembly");
}
}