win32.cc (WSAEventWrapper): Implemented default constructor and init() methods.

* win32.cc (WSAEventWrapper): Implemented default
	constructor and init() methods.
	(_Jv_select): Removed.
	* gnu/java/nio/natSelectorImplWin32.cc
	(helper_put_filedescriptors): Removed.
	(helper_get_filedescriptors): Removed.
	(implSelect): Implemented in terms of WSAEventWrapper
	and WSAWaitForMultipleEvents instead of _Jv_select().
	Added support for thread interruption.
	* include/win32.h (WSAEventWrapper): Minor formatting
	changes; added default constructor declaration, init(),
	getFD() and getEventHandle() methods.
	(_Jv_select): Removed.

From-SVN: r74715
This commit is contained in:
Mohan Embar
2003-12-16 22:54:22 +00:00
committed by Mohan Embar
parent 027e655b6e
commit 5cd4d463f9
4 changed files with 122 additions and 94 deletions

View File

@@ -143,11 +143,24 @@ _Jv_Win32TempString::~_Jv_Win32TempString()
}
// class WSAEventWrapper
WSAEventWrapper::WSAEventWrapper ():
m_hEvent(0),
m_fd(0),
m_dwSelFlags(0)
{}
WSAEventWrapper::WSAEventWrapper (int fd, DWORD dwSelFlags):
m_hEvent(0),
m_fd(fd),
m_dwSelFlags(dwSelFlags)
m_fd(0),
m_dwSelFlags(0)
{
init(fd, dwSelFlags);
}
void WSAEventWrapper::init(int fd, DWORD dwSelFlags)
{
m_fd = fd;
m_dwSelFlags = dwSelFlags;
m_hEvent = WSACreateEvent ();
if (dwSelFlags)
WSAEventSelect(fd, m_hEvent, dwSelFlags);
@@ -445,19 +458,6 @@ backtrace (void **__array, int __size)
return i;
}
int
_Jv_select (int n, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout)
{
int r = ::select (n, readfds, writefds, exceptfds, timeout);
if (r == SOCKET_ERROR)
{
DWORD dwErrorCode = WSAGetLastError ();
throw new java::io::IOException (_Jv_WinStrError (dwErrorCode));
}
return r;
}
int
_Jv_pipe (int filedes[2])
{