* fhandler.h (class fhandler_socket): Remove has_been_closed member.
* fhandler_socket.cc (fhandler_socket::recvfrom): Revert to overlapped I/O. (fhandler_socket::recvmsg): Ditto. (fhandler_socket::sendto): Ditto. (fhandler_socket::sendmsg): Ditto. * net.cc (wsock_event::prepare): Ditto. (wsock_event::wait): Ditto. Evaluate overlapped result also after calling CancelIo (thanks to Patrick Samson <p_samson@yahoo.com>). (wsock_event::release): Remove. * wsock_event.h: Revert to overlapped I/O.
This commit is contained in:
@@ -14,13 +14,19 @@ details. */
|
||||
class wsock_event
|
||||
{
|
||||
WSAEVENT event;
|
||||
WSAOVERLAPPED ovr;
|
||||
public:
|
||||
wsock_event () : event (NULL) {};
|
||||
~wsock_event ()
|
||||
{
|
||||
if (event)
|
||||
WSACloseEvent (event);
|
||||
event = NULL;
|
||||
};
|
||||
|
||||
/* The methods are implemented in net.cc */
|
||||
bool prepare (int sock, long event_mask);
|
||||
int wait (int sock, int &closed);
|
||||
void release (int sock);
|
||||
LPWSAOVERLAPPED prepare ();
|
||||
int wait (int socket, LPDWORD flags);
|
||||
};
|
||||
|
||||
#endif /* __WSOCK_EVENT_H__ */
|
||||
|
Reference in New Issue
Block a user