summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2015-10-03 18:43:49 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2015-10-05 08:54:11 +0000
commitc7b276f4e6c1fac896099dfddef1c6c69e132fb9 (patch)
tree223891df84843c01a0d029493dffc60739b9d438
parent6630994af46d22503982d54c72a8fe5cd5e51be5 (diff)
downloadqtserialport-c7b276f4e6c1fac896099dfddef1c6c69e132fb9.tar.gz
Use the qt_safe_select for waitForXX functions on *nix
Now it is used the qt_safe_select() function similar to the Qt socket engine. Tested on Linux (kernel 4.1.7) with the USB and virtual tty0tty serial ports. Change-Id: Icd7a443ee5e0b5d6453a6e9973930f41e1313eeb Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r--src/serialport/qserialport_unix.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp
index c243319..bced191 100644
--- a/src/serialport/qserialport_unix.cpp
+++ b/src/serialport/qserialport_unix.cpp
@@ -992,11 +992,11 @@ bool QSerialPortPrivate::waitForReadOrWrite(bool *selectForRead, bool *selectFor
if (checkWrite)
FD_SET(descriptor, &fdwrite);
- struct timeval tv;
+ struct timespec tv;
tv.tv_sec = msecs / 1000;
- tv.tv_usec = (msecs % 1000) * 1000;
+ tv.tv_nsec = (msecs % 1000) * 1000 * 1000;
- const int ret = ::select(descriptor + 1, &fdread, &fdwrite, 0, msecs < 0 ? 0 : &tv);
+ const int ret = qt_safe_select(descriptor + 1, &fdread, &fdwrite, 0, msecs < 0 ? 0 : &tv);
if (ret < 0) {
setError(getSystemError());
return false;