From: <va...@us...> - 2006-10-11 07:13:18
|
Revision: 7492 http://svn.sourceforge.net/jedit/?rev=7492&view=rev Author: vanza Date: 2006-10-11 00:13:08 -0700 (Wed, 11 Oct 2006) Log Message: ----------- (Argh!) Actually synchronize the print stream/ output stream on the same object so that threads writing to stdout/stderr don't race each other. Modified Paths: -------------- jEdit/trunk/org/gjt/sp/util/Log.java Modified: jEdit/trunk/org/gjt/sp/util/Log.java =================================================================== --- jEdit/trunk/org/gjt/sp/util/Log.java 2006-10-11 07:08:14 UTC (rev 7491) +++ jEdit/trunk/org/gjt/sp/util/Log.java 2006-10-11 07:13:08 UTC (rev 7492) @@ -529,25 +529,28 @@ * would be needed for the "other" printf method, but * I'll settle for the common case only. */ - public synchronized PrintStream printf(String format, Object... args) + public PrintStream printf(String format, Object... args) { - buffer.reset(); - out = buffer; - super.printf(format, args); - - try + synchronized (orig) { - byte[] data = buffer.toByteArray(); - orig.write(data, 0, data.length); - out = orig; - } - catch (IOException ioe) - { - // don't do anything? - } - finally - { buffer.reset(); + out = buffer; + super.printf(format, args); + + try + { + byte[] data = buffer.toByteArray(); + orig.write(data, 0, data.length); + out = orig; + } + catch (IOException ioe) + { + // don't do anything? + } + finally + { + buffer.reset(); + } } return this; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |