--- qeventdispatcher_win.cpp.org 2010-10-07 23:49:29.006076200 +0200 +++ qeventdispatcher_win.cpp 2010-10-08 00:16:14.177951200 +0200 @@ -194,45 +194,84 @@ int maxFd = 0; + QString d_msg("WSAAsync select called"); + QString d_socknr; + for (QMap::iterator it = currentSockets.begin(); it != currentSockets.end(); ++it) { const SockInfo &info = it.value(); int socket = it.key(); maxFd = qMax(maxFd, socket); + d_socknr.setNum (socket, 16); + d_msg += " 0x" + d_socknr + "<"; if ((info.ev & FD_READ) || (info.ev & FD_CLOSE) || (info.ev & FD_ACCEPT)) + { FD_SET(socket, &readS); + d_msg += "r"; + } if ((info.ev & FD_WRITE)|| (info.ev & FD_CONNECT)) + { FD_SET(socket, &writeS); + d_msg += "w"; + } if (info.ev & FD_OOB) - FD_SET(socket, &exS); + { + FD_SET(socket, &exS); + d_msg += "x"; + } + d_msg += ">"; } timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 50000; + qDebug(d_msg); int result = ::select(maxFd + 1, &readS, &writeS, &exS, &timeout); if (result > 0) { HWND handle; unsigned int tmpMsg; SOCKET sock; HRESULT ret; + d_msg = "WSAAsync select result"); + for (QMap::const_iterator it = currentSockets.constBegin(); it != currentSockets.constEnd(); ++it) { + + QString d_flags; + handle = (*it).handle; tmpMsg = (*it).msg; sock = it.key(); if (FD_ISSET(sock, &readS)) - ret = SendMessage(handle, tmpMsg, sock, FD_READ); - + { + ret = SendMessage(handle, tmpMsg, sock, FD_READ); + d_flags += "r"; + } if (FD_ISSET(sock, &writeS)) + { ret = SendMessage(handle, tmpMsg, sock, FD_WRITE); - + d_flags += "w"; + } if (FD_ISSET(sock, &exS)) - ret = SendMessage(handle, tmpMsg, sock, FD_OOB); + { + ret = SendMessage(handle, tmpMsg, sock, FD_OOB); + d_flags += "x"; + } + if (! d_flags.isEmpty()) + { + d_socknr.setNum (socket, 16); + d_msg += " 0x" + d_socknr + "<" + d_flags + ">"; + } } + qDebug(d_msg); + } + else if (result == 0) { //timeout + qDebug("WSAAsync select timeout"); + } else if (result < 0) { + qDebug("WSAAsync select error %d", WSAGetLastError()); } -#ifdef QCE_ASYNC_DEBUG +#if 0 else if (result == 0) { //timeout qDebug(" WSAAsync select timeout"); } else if (result < 0) { // SocketError