OSDN Git Service

use EINTR_LOOP() macro where possible
authorIvailo Monev <xakepa10@gmail.com>
Sun, 14 Feb 2021 17:17:25 +0000 (19:17 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Sun, 14 Feb 2021 17:17:25 +0000 (19:17 +0200)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/core/io/qfsfileengine.cpp
src/network/socket/qnativesocketengine_unix.cpp

index fe1ebf5..466e279 100644 (file)
@@ -181,10 +181,7 @@ bool QFSFileEngine::open(QIODevice::OpenMode openMode)
     // Seek to the end when in Append mode.
     if (d->openMode & QFile::Append) {
         int ret;
-        do {
-            ret = QT_LSEEK(d->fd, 0, SEEK_END);
-        } while (ret == -1 && errno == EINTR);
-
+        EINTR_LOOP(ret, QT_LSEEK(d->fd, 0, SEEK_END));
         if (ret == -1) {
             setError(errno == EMFILE ? QFile::ResourceError : QFile::OpenError,
                      qt_error_string(errno));
@@ -255,10 +252,7 @@ bool QFSFileEngine::open(QIODevice::OpenMode openMode, int fd, QFile::FileHandle
     // Seek to the end when in Append mode.
     if (d->openMode & QFile::Append) {
         int ret;
-        do {
-            ret = QT_LSEEK(d->fd, 0, SEEK_END);
-        } while (ret == -1 && errno == EINTR);
-
+        EINTR_LOOP(ret, QT_LSEEK(d->fd, 0, SEEK_END));
         if (ret == -1) {
             setError(errno == EMFILE ? QFile::ResourceError : QFile::OpenError,
                      qt_error_string(errno));
index 646d7de..b8ad8b4 100644 (file)
@@ -734,10 +734,8 @@ bool QNativeSocketEnginePrivate::nativeHasPendingDatagrams() const
     // Peek 0 bytes into the next message. The size of the message may
     // well be 0, so we can't check recvfrom's return value.
     ssize_t readBytes;
-    do {
-        char c;
-        readBytes = ::recvfrom(socketDescriptor, &c, 1, MSG_PEEK, &storage.a, &storageSize);
-    } while (readBytes == -1 && errno == EINTR);
+    char c;
+    EINTR_LOOP(readBytes, ::recvfrom(socketDescriptor, &c, 1, MSG_PEEK, &storage.a, &storageSize));
 
     // If there's no error, or if our buffer was too small, there must be a
     // pending datagram.
@@ -786,11 +784,9 @@ qint64 QNativeSocketEnginePrivate::nativeReceiveDatagram(char *data, qint64 maxS
     sz = sizeof(aa);
 
     ssize_t recvFromResult = 0;
-    do {
-        char c;
-        recvFromResult = ::recvfrom(socketDescriptor, maxSize ? data : &c, maxSize ? maxSize : 1,
-                                    0, &aa.a, &sz);
-    } while (recvFromResult == -1 && errno == EINTR);
+    char c;
+    EINTR_LOOP(recvFromResult, ::recvfrom(socketDescriptor, maxSize ? data : &c, maxSize ? maxSize : 1,
+                                    0, &aa.a, &sz));
 
     if (recvFromResult == -1) {
         setError(QAbstractSocket::NetworkError, ReceiveDatagramErrorString);