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:
parent
7f13af23a5
commit
6cd167e1a7
3 changed files with 16 additions and 27 deletions
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
|
Loading…
Add table
Reference in a new issue