mirror of
https://github.com/solemnwarning/directplay-lite
synced 2024-12-30 16:45:37 +01:00
Calling WSAEventSelect() causes the event to become signalled even if there is nothing new, probably due to the socket being writable. Due to this, io_peer_recv() signals the event object whenever claiming recv_busy just to check for pending data, and again when releasing it, which leads to another worker immediately waking up and claiming it to check for new messages, starting the cycle again. Only claim recv_busy and mask FD_RECV events if some data is actually read from the socket.
Description
Reimplementation of Microsoft's DirectPlay API
Languages
C++
91.3%
C
8%
Assembly
0.6%