diff options
author | Tom Tromey <tromey@cygnus.com> | 2000-04-21 21:41:32 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2000-04-21 21:41:32 +0000 |
commit | 6cd167e1a7f8c13bbc51393aef6c7bd6f0f50075 (patch) | |
tree | 68700a10d2ec54f555f52f3d62ae77bc56a2da46 /libjava/java | |
parent | 7f13af23a55bc12a4d2ea9ac673e89a1a39ccd48 (diff) | |
download | gcc-6cd167e1a7f8c13bbc51393aef6c7bd6f0f50075.zip gcc-6cd167e1a7f8c13bbc51393aef6c7bd6f0f50075.tar.gz gcc-6cd167e1a7f8c13bbc51393aef6c7bd6f0f50075.tar.bz2 |
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
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/io/PipedInputStream.java | 31 | ||||
-rw-r--r-- | libjava/java/io/PipedOutputStream.java | 9 |
2 files changed, 13 insertions, 27 deletions
diff --git a/libjava/java/io/PipedInputStream.java b/libjava/java/io/PipedInputStream.java index 97c034b..e25f163 100644 --- a/libjava/java/io/PipedInputStream.java +++ b/libjava/java/io/PipedInputStream.java @@ -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; diff --git a/libjava/java/io/PipedOutputStream.java b/libjava/java/io/PipedOutputStream.java index 6d10612..b12d1e5 100644 --- a/libjava/java/io/PipedOutputStream.java +++ b/libjava/java/io/PipedOutputStream.java @@ -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); } /*************************************************************************/ |