Example #1
0
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);
}
Example #2
0
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;
}
Example #4
0
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
Example #7
0
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);
            }