mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
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:
@@ -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])
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user