Don't check for EINTR after calling QT_READ / QT_WRITE
On Unix, those functions are already #define'd to qt_safe_read and qt_safe_write, which do the necessary EINTR handling. On Windows, EINTR cannot happen. Change-Id: I50c46472c04bd90a0bac51c725cc86311ae905c8 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This commit is contained in:
parent
0c32af08a6
commit
fa91bb9a02
@ -619,8 +619,7 @@ qint64 QFSFileEnginePrivate::readFdFh(char *data, qint64 len)
|
||||
#endif
|
||||
do {
|
||||
result = QT_READ(fd, data + readBytes, size_t(len - readBytes));
|
||||
} while ((result == -1 && errno == EINTR)
|
||||
|| (result > 0 && (readBytes += result) < len));
|
||||
} while (result > 0 && (readBytes += result) < len);
|
||||
|
||||
eof = !(result == -1);
|
||||
}
|
||||
@ -737,8 +736,7 @@ qint64 QFSFileEnginePrivate::writeFdFh(const char *data, qint64 len)
|
||||
#endif
|
||||
do {
|
||||
result = QT_WRITE(fd, data + writtenBytes, size_t(len - writtenBytes));
|
||||
} while ((result == -1 && errno == EINTR)
|
||||
|| (result > 0 && (writtenBytes += result) < len));
|
||||
} while (result > 0 && (writtenBytes += result) < len);
|
||||
}
|
||||
|
||||
if (len && writtenBytes == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user