From 3e101fb2cd57d46020748deb607c99fd6e5be3bf Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 7 May 2004 07:51:31 +0000 Subject: Revert code reversion from 2004-04-03. So, revert to async I/O again. * fhandler.h (status): Add "closed" flag. (prepare): New method declaration. (wait): Ditto. (release): Ditto. * fhandler_socket.cc: Don't include wsock_event.h. (fhandler_socket::prepare): New method, moved from wsock_event. (fhandler_socket::wait): Ditto. (fhandler_socket::release): New method. (fhandler_socket::recvfrom): Simplify loop. (fhandler_socket::recvmsg): Ditto. (fhandler_socket::sendto): Ditto. (fhandler_socket::sendmsg): Ditto. * net.cc: Don't include wsock_event.h. (wsock_event::prepare): Remove. (wsock_event::wait): Ditto. * wsock_event.h: Remove. --- winsup/cygwin/net.cc | 56 ---------------------------------------------------- 1 file changed, 56 deletions(-) (limited to 'winsup/cygwin/net.cc') diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc index 3de2c0adc..58c3a9fab 100644 --- a/winsup/cygwin/net.cc +++ b/winsup/cygwin/net.cc @@ -35,7 +35,6 @@ details. */ #include "sigproc.h" #include "pinfo.h" #include "registry.h" -#include "wsock_event.h" #include "cygtls.h" extern "C" @@ -50,61 +49,6 @@ extern "C" int sscanf (const char *, const char *, ...); } /* End of "C" section */ -LPWSAOVERLAPPED -wsock_event::prepare () -{ - LPWSAOVERLAPPED ret = NULL; - - SetLastError (0); - if ((event = WSACreateEvent ()) != WSA_INVALID_EVENT) - { - memset (&ovr, 0, sizeof ovr); - ovr.hEvent = event; - ret = &ovr; - } - else if (GetLastError () == ERROR_PROC_NOT_FOUND) /* winsock2 not available */ - WSASetLastError (0); - - debug_printf ("%d = wsock_event::prepare ()", ret); - return ret; -} - -int -wsock_event::wait (int socket, LPDWORD flags) -{ - int ret = SOCKET_ERROR; - WSAEVENT ev[2] = { event, signal_arrived }; - DWORD len; - - switch (WSAWaitForMultipleEvents (2, ev, FALSE, WSA_INFINITE, FALSE)) - { - case WSA_WAIT_EVENT_0: - if (WSAGetOverlappedResult (socket, &ovr, &len, FALSE, flags)) - ret = (int) len; - break; - case WSA_WAIT_EVENT_0 + 1: - if (!CancelIo ((HANDLE) socket)) - { - debug_printf ("CancelIo() %E, fallback to blocking io"); - WSAGetOverlappedResult (socket, &ovr, &len, TRUE, flags); - } - else if (WSAGetOverlappedResult (socket, &ovr, &len, FALSE, flags) - && len > 0) - ret = (int) len; - else - WSASetLastError (WSAEINTR); - break; - case WSA_WAIT_FAILED: - break; - default: /* Should be impossible. *LOL* */ - WSASetLastError (WSAEFAULT); - break; - } - WSACloseEvent (event); - event = NULL; - return ret; -} - WSADATA wsadata; static fhandler_socket * -- cgit v1.2.3