int qt_select_msecs(int nfds, fd_set *fdread, fd_set *fdwrite, int timeout) { if (timeout < 0) return qt_safe_select(nfds, fdread, fdwrite, 0, 0); struct timespec tv; tv.tv_sec = timeout / 1000; tv.tv_nsec = (timeout % 1000) * 1000 * 1000; return qt_safe_select(nfds, fdread, fdwrite, 0, &tv); }
int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool checkRead, bool checkWrite, bool *selectForRead, bool *selectForWrite) const { fd_set fdread; FD_ZERO(&fdread); if (checkRead) FD_SET(socketDescriptor, &fdread); fd_set fdwrite; FD_ZERO(&fdwrite); if (checkWrite) FD_SET(socketDescriptor, &fdwrite); struct timeval tv; tv.tv_sec = timeout / 1000; tv.tv_usec = (timeout % 1000) * 1000; int ret; ret = qt_safe_select(socketDescriptor + 1, &fdread, &fdwrite, 0, timeout < 0 ? 0 : &tv); if (ret <= 0) return ret; *selectForRead = FD_ISSET(socketDescriptor, &fdread); *selectForWrite = FD_ISSET(socketDescriptor, &fdwrite); return ret; }
int NativeSerialEnginePrivate::nativeSelect(int timeout, bool checkRead, bool checkWrite, bool *selectForRead, bool *selectForWrite) { fd_set fdread; FD_ZERO(&fdread); if (checkRead) FD_SET(this->descriptor, &fdread); fd_set fdwrite; FD_ZERO(&fdwrite); if (checkWrite) FD_SET(this->descriptor, &fdwrite); struct timeval tv; tv.tv_sec = (timeout / 1000); tv.tv_usec = (timeout % 1000) * 1000; //qt_safe_* added in Qt version >= 4.6.0 int ret = qt_safe_select(this->descriptor + 1, &fdread, &fdwrite, 0, (timeout < 0) ? 0 : &tv); //int ret = ::select(this->descriptor + 1, &fdread, 0, 0, timeout < 0 ? 0 : &tv); if (ret <= 0) { *selectForRead = *selectForWrite = false; return ret; } *selectForRead = FD_ISSET(this->descriptor, &fdread); *selectForWrite = FD_ISSET(this->descriptor, &fdwrite); return ret; }
int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) const { fd_set fds; FD_ZERO(&fds); FD_SET(socketDescriptor, &fds); struct timeval tv; tv.tv_sec = timeout / 1000; tv.tv_usec = (timeout % 1000) * 1000; int retval; if (selectForRead) retval = qt_safe_select(socketDescriptor + 1, &fds, 0, 0, timeout < 0 ? 0 : &tv); else retval = qt_safe_select(socketDescriptor + 1, 0, &fds, 0, timeout < 0 ? 0 : &tv); return retval; }
int QEventDispatcherGenode::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, timeval *timeout) { /* if < 50ms round up to the 50ms minimum granularity supported by * the timed semaphore */ if (timeout && (timeout->tv_sec == 0) && (timeout->tv_usec > 0) && (timeout->tv_usec < 10000)) timeout->tv_usec = 10000; return qt_safe_select(nfds, readfds, writefds, exceptfds, timeout); }
int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) const { fd_set fds; FD_ZERO(&fds); FD_SET(socketDescriptor, &fds); struct timeval tv; tv.tv_sec = timeout / 1000; tv.tv_usec = (timeout % 1000) * 1000; #ifdef Q_OS_SYMBIAN fd_set fdexception; FD_ZERO(&fdexception); FD_SET(socketDescriptor, &fdexception); #endif int retval; if (selectForRead) #ifdef Q_OS_SYMBIAN retval = ::select(socketDescriptor + 1, &fds, 0, &fdexception, timeout < 0 ? 0 : &tv); #else retval = qt_safe_select(socketDescriptor + 1, &fds, 0, 0, timeout < 0 ? 0 : &tv); #endif else
int QEventDispatcherUNIX::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, timeval *timeout) { return qt_safe_select(nfds, readfds, writefds, exceptfds, timeout); }
FD_ZERO(&fdexception); FD_SET(socketDescriptor, &fdexception); #endif int retval; if (selectForRead) #ifdef Q_OS_SYMBIAN retval = ::select(socketDescriptor + 1, &fds, 0, &fdexception, timeout < 0 ? 0 : &tv); #else retval = qt_safe_select(socketDescriptor + 1, &fds, 0, 0, timeout < 0 ? 0 : &tv); #endif else #ifdef Q_OS_SYMBIAN retval = ::select(socketDescriptor + 1, 0, &fds, &fdexception, timeout < 0 ? 0 : &tv); #else retval = qt_safe_select(socketDescriptor + 1, 0, &fds, 0, timeout < 0 ? 0 : &tv); #endif #ifdef Q_OS_SYMBIAN bool selectForExec = false; if(retval != 0) { if(retval < 0) { qWarning("nativeSelect(....) returned < 0 for socket %d", socketDescriptor); } selectForExec = FD_ISSET(socketDescriptor, &fdexception); } if(selectForExec) { qWarning("nativeSelect (selectForRead %d, retVal %d, errno %d) Unexpected exception for fd %d", selectForRead, retval, errno, socketDescriptor); }