summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGleb Popov <[email protected]>2025-06-08 17:51:54 +0300
committerGleb Popov <[email protected]>2025-06-12 15:20:49 +0300
commit59c29436db8731fb7a8c9a932bf55d79b370668c (patch)
tree9c0652af391278842e885eb0d725587c242307f6
parent4ba106b38fe94ae3a7a8520b276a4873d11bb755 (diff)
QNativeSocketEngine: React on POLLHUP too when selecting for writing
FreeBSD may return a single POLLHUP revent not coupled with any of POLLOUT nor POLLERR. This causes a busy-loop, so put POLLHUP into write_flags. Change-Id: Ief62138eeb6de8e2caf1d6937507bfd828adfb81 Reviewed-by: Thiago Macieira <[email protected]>
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index 4b096c840d7..6949eec9560 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -1380,7 +1380,7 @@ int QNativeSocketEnginePrivate::nativeSelect(QDeadlineTimer deadline, bool check
}
static const short read_flags = POLLIN | POLLHUP | POLLERR;
- static const short write_flags = POLLOUT | POLLERR;
+ static const short write_flags = POLLOUT | POLLHUP | POLLERR;
*selectForRead = ((pfd.revents & read_flags) != 0);
*selectForWrite = ((pfd.revents & write_flags) != 0);