diff options
| author | membar <membar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-16 22:57:06 +0000 | 
|---|---|---|
| committer | membar <membar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-16 22:57:06 +0000 | 
| commit | de6a565fb2ebc0b106d01089d3b88ff82ab27f13 (patch) | |
| tree | c8fe61edf57cecc90858c5eaadbb30979f5acecb /libjava/gnu/java/net | |
| parent | 4d5772a7a4db67e0a2b6e387cbed908344dc9031 (diff) | |
| download | ppe42-gcc-de6a565fb2ebc0b106d01089d3b88ff82ab27f13.tar.gz ppe42-gcc-de6a565fb2ebc0b106d01089d3b88ff82ab27f13.zip  | |
	* gnu/java/net/natPlainDatagramSocketImplWin32.cc:
	Removed unused InterruptedIOException.h include.
	* gnu/java/net/natPlainSocketImplWin32.cc
	(connect): Reset and ignore our thread's interrupted
	flag instead of testing and throwing an InterruptedIOException
	if set.
	(accept): Likewise + changed case of SocketTimeoutException
	text.
	(write): Likewise (for both overloads).
	(doRead): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74716 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/java/net')
| -rw-r--r-- | libjava/gnu/java/net/natPlainDatagramSocketImplWin32.cc | 1 | ||||
| -rw-r--r-- | libjava/gnu/java/net/natPlainSocketImplWin32.cc | 53 | 
2 files changed, 24 insertions, 30 deletions
diff --git a/libjava/gnu/java/net/natPlainDatagramSocketImplWin32.cc b/libjava/gnu/java/net/natPlainDatagramSocketImplWin32.cc index 18906a04bc4..d3534791801 100644 --- a/libjava/gnu/java/net/natPlainDatagramSocketImplWin32.cc +++ b/libjava/gnu/java/net/natPlainDatagramSocketImplWin32.cc @@ -17,7 +17,6 @@ details.  */  #include <gnu/java/net/PlainDatagramSocketImpl.h>  #include <java/io/IOException.h> -#include <java/io/InterruptedIOException.h>  #include <java/net/BindException.h>  #include <java/net/SocketException.h>  #include <java/net/InetAddress.h> diff --git a/libjava/gnu/java/net/natPlainSocketImplWin32.cc b/libjava/gnu/java/net/natPlainSocketImplWin32.cc index 4ea0ca0456e..c4a54a90c3a 100644 --- a/libjava/gnu/java/net/natPlainSocketImplWin32.cc +++ b/libjava/gnu/java/net/natPlainSocketImplWin32.cc @@ -17,7 +17,6 @@ details.  */  #include <gnu/java/net/PlainSocketImpl$SocketInputStream.h>  #include <gnu/java/net/PlainSocketImpl$SocketOutputStream.h>  #include <java/io/IOException.h> -#include <java/io/InterruptedIOException.h>  #include <java/net/BindException.h>  #include <java/net/ConnectException.h>  #include <java/net/InetAddress.h> @@ -176,9 +175,13 @@ gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,              // use true, false instead of TRUE, FALSE because the              // MS constants got undefined +        // Reset and ignore our thread's interrupted flag. +        // It's not possible to interrupt these sort of +        // operations on Win32 anyway. +        ::java::lang::Thread::interrupted(); +          if (dwRet == WSA_WAIT_FAILED)            throwConnectException (); -                  else if (dwRet == WSA_WAIT_TIMEOUT)            throw new ::java::net::SocketTimeoutException              (JvNewStringUTF ("connect timed out")); @@ -275,11 +278,14 @@ gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)              // use true, false instead of TRUE, FALSE because the              // MS constants got undefined +        // Reset and ignore our thread's interrupted flag. +        ::java::lang::Thread::interrupted(); +          if (dwRet == WSA_WAIT_FAILED)            goto error;          else if (dwRet == WSA_WAIT_TIMEOUT)            throw new ::java::net::SocketTimeoutException -            (JvNewStringUTF ("accept timed out")); +            (JvNewStringUTF ("Accept timed out"));        }      }    else @@ -361,14 +367,12 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jint b)        if (r == -1)          {            DWORD dwErr = WSAGetLastError(); -          if (::java::lang::Thread::interrupted()) -            { -              ::java::io::InterruptedIOException *iioe -                = new ::java::io::InterruptedIOException -                (_Jv_WinStrError (dwErr)); -              iioe->bytesTransferred = 0; -              throw iioe; -            } +           +          // Reset and ignore our thread's interrupted flag. +          // It's not possible to interrupt these sort of +          // operations on Win32 anyway. +          ::java::lang::Thread::interrupted(); +            // Some errors should not cause exceptions.            if (dwErr != WSAENOTCONN && dwErr != WSAECONNRESET              && dwErr != WSAENOTSOCK) @@ -397,14 +401,10 @@ gnu::java::net::PlainSocketImpl$SocketOutputStream::write(jbyteArray b,        if (r == -1)          {            DWORD dwErr = WSAGetLastError(); -          if (::java::lang::Thread::interrupted()) -            { -              ::java::io::InterruptedIOException *iioe -                = new ::java::io::InterruptedIOException -                (_Jv_WinStrError (dwErr)); -              iioe->bytesTransferred = written; -              throw iioe; -            } + +          // Reset and ignore our thread's interrupted flag. +          ::java::lang::Thread::interrupted(); +            // Some errors should not cause exceptions.            if (dwErr != WSAENOTCONN && dwErr != WSAECONNRESET              && dwErr != WSAENOTSOCK) @@ -456,15 +456,10 @@ doRead(int native_fd, void* buf, int count, int timeout)    dwErrorCode = WSAGetLastError ();      // save WSAGetLastError() before calling Thread.interrupted() -  if (::java::lang::Thread::interrupted()) -    { -      ::java::io::InterruptedIOException *iioe = -        new ::java::io::InterruptedIOException -        (JvNewStringUTF("read interrupted")); -      iioe->bytesTransferred = r == -1 ? 0 : r; -      throw iioe; -    } -  else if (r == -1) +  // Reset and ignore our thread's interrupted flag. +  ::java::lang::Thread::interrupted(); +   +  if (r == -1)      {  error:        // Some errors cause us to return end of stream... @@ -474,7 +469,7 @@ error:        // Other errors need to be signalled.        if (dwErrorCode == WSAETIMEDOUT)          throw new ::java::net::SocketTimeoutException -          (JvNewStringUTF ("read timed out") ); +          (JvNewStringUTF ("Read timed out") );        else          _Jv_ThrowIOException (dwErrorCode);      }  | 

