< 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 >