< prev index next >

src/share/vm/logging/logFileStreamOutput.cpp

Print this page
rev 12117 : 8146009:

*** 26,37 **** #include "logging/logDecorations.hpp" #include "logging/logFileStreamOutput.hpp" #include "logging/logMessageBuffer.hpp" #include "memory/allocation.inline.hpp" ! LogStdoutOutput LogStdoutOutput::_instance; ! LogStderrOutput LogStderrOutput::_instance; int LogFileStreamOutput::write_decorations(const LogDecorations& decorations) { int total_written = 0; for (uint i = 0; i < LogDecorators::Count; i++) { --- 26,48 ---- #include "logging/logDecorations.hpp" #include "logging/logFileStreamOutput.hpp" #include "logging/logMessageBuffer.hpp" #include "memory/allocation.inline.hpp" ! static volatile jint initialized; ! static char stdoutmem[sizeof(LogStdoutOutput)]; ! static char stderrmem[sizeof(LogStderrOutput)]; ! ! LogStdoutOutput &StdoutLog = reinterpret_cast<LogStdoutOutput&>(stdoutmem); ! LogStderrOutput &StderrLog = reinterpret_cast<LogStderrOutput&>(stderrmem); ! ! LogFileStreamInitializer::LogFileStreamInitializer() { ! if (Atomic::cmpxchg(1, &initialized, 0) == 0) { ! ::new (&StdoutLog) LogStdoutOutput(); ! ::new (&StderrLog) LogStderrOutput(); ! } ! } int LogFileStreamOutput::write_decorations(const LogDecorations& decorations) { int total_written = 0; for (uint i = 0; i < LogDecorators::Count; i++) {
< prev index next >