PipedInputStream.java, [...]: Yet another new version from Classpath.

* java/io/PipedInputStream.java, java/io/PipedOutputStream.java:
	Yet another new version from Classpath.

From-SVN: r33328
This commit is contained in:
Tom Tromey 2000-04-21 21:41:32 +00:00 committed by Tom Tromey
parent 7f13af23a5
commit 6cd167e1a7
3 changed files with 16 additions and 27 deletions

View file

@ -1,5 +1,8 @@
2000-04-21 Tom Tromey <tromey@cygnus.com>
* java/io/PipedInputStream.java, java/io/PipedOutputStream.java:
Yet another new version from Classpath.
Fix for PR libgcj/15:
* java/util/natGregorianCalendar.cc (_REENTRANT,
_POSIX_PTHREAD_SEMANTICS): Don't define.

View file

@ -398,30 +398,19 @@ read(byte[] buf, int offset, int len) throws IOException
* If there is no data ready to be written, or if the internal circular
* buffer is full, this method blocks.
*
* *****What is this method really supposed to do *********
* @param byte_received The byte to write to this stream
*
* @exception IOException if error occurs
*
*/
protected synchronized void
receive(int byte_received) throws IOException
{
int orig_in = in;
for (;;)
{
// Wait for something to happen
try
{
wait();
}
catch(InterruptedException e) { ; }
// See if we woke up because the stream was closed on us
if (closed)
throw new IOException("Stream closed before receiving byte");
// See if a byte of data was received
if (in != orig_in)
return;
}
// This is really slow, but it has the benefit of not duplicating
// the complicated machinery in receive(byte[],int,int).
byte[] buf = new byte[1];
buf[0] = (byte) (byte_received & 0xff);
receive (buf, 0, 1);
}
/*************************************************************************/
@ -439,7 +428,7 @@ receive(int byte_received) throws IOException
* @exception IOException If an error occurs
*/
synchronized void
write(byte[] buf, int offset, int len) throws IOException
receive(byte[] buf, int offset, int len) throws IOException
{
if (len <= 0)
return;

View file

@ -1,5 +1,5 @@
/* PipedOutputStream.java -- Write portion of piped streams.
Copyright (C) 1998 Free Software Foundation, Inc.
Copyright (C) 1998, 2000 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -164,10 +164,7 @@ close() throws IOException
public synchronized void
write(int b) throws IOException
{
byte[] buf = new byte[1];
buf[0] = (byte)(b & 0xFF);
snk.write(buf, 0, buf.length);
snk.receive (b);
}
/*************************************************************************/
@ -188,7 +185,7 @@ write(int b) throws IOException
public void
write(byte[] buf, int offset, int len) throws IOException
{
snk.write(buf, 0, len);
snk.receive (buf, 0, len);
}
/*************************************************************************/