mirror of
https://github.com/postgres/postgres.git
synced 2025-10-22 14:32:25 +03:00
Use WL_SOCKET_CLOSED for client_connection_check_interval.
Previously we used poll() directly to check for a POLLRDHUP event. Instead, use the WaitEventSet API to poll the socket for WL_SOCKET_CLOSED, which knows how to detect this condition on many more operating systems. Reviewed-by: Zhihong Yu <zyu@yugabyte.com> Reviewed-by: Maksim Milyutin <milyutinma@gmail.com> Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/77def86b27e41f0efcba411460e929ae%40postgrespro.ru
This commit is contained in:
@@ -12192,14 +12192,11 @@ check_huge_page_size(int *newval, void **extra, GucSource source)
|
||||
static bool
|
||||
check_client_connection_check_interval(int *newval, void **extra, GucSource source)
|
||||
{
|
||||
#ifndef POLLRDHUP
|
||||
/* Linux only, for now. See pq_check_connection(). */
|
||||
if (*newval != 0)
|
||||
if (!WaitEventSetCanReportClosed() && *newval != 0)
|
||||
{
|
||||
GUC_check_errdetail("client_connection_check_interval must be set to 0 on platforms that lack POLLRDHUP.");
|
||||
GUC_check_errdetail("client_connection_check_interval must be set to 0 on this platform");
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user