mirror of https://github.com/citusdata/citus.git
Rely on return values of connection apis
parent
45f882ef9f
commit
820b2a23cd
|
@ -617,14 +617,35 @@ RemoteSocketClosed(MultiConnection *connection)
|
||||||
bool socketClosed = false;
|
bool socketClosed = false;
|
||||||
#if PG_VERSION_NUM >= PG_VERSION_15
|
#if PG_VERSION_NUM >= PG_VERSION_15
|
||||||
|
|
||||||
|
if (!WaitEventSetCanReportClosed())
|
||||||
|
{
|
||||||
|
/* the kernel build does not support WL_SOCKET_CLOSED */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
WaitEventSet *waitEventSet =
|
WaitEventSet *waitEventSet =
|
||||||
CreateWaitEventSet(CurrentMemoryContext, 1);
|
CreateWaitEventSet(CurrentMemoryContext, 1);
|
||||||
int sock = PQsocket(connection->pgConn);
|
int sock = PQsocket(connection->pgConn);
|
||||||
WaitEvent *events = palloc0(sizeof(WaitEvent));
|
WaitEvent events[1];
|
||||||
|
int waitEventSetIndex =
|
||||||
|
CitusAddWaitEventSetToSet(waitEventSet, WL_SOCKET_CLOSED, sock,
|
||||||
|
NULL, (void *) connection);
|
||||||
|
|
||||||
/* TODO: process return value of CitusAddWaitEventSetToSet */
|
if (waitEventSetIndex == WAIT_EVENT_SET_INDEX_FAILED)
|
||||||
CitusAddWaitEventSetToSet(waitEventSet, WL_SOCKET_CLOSED, sock,
|
{
|
||||||
NULL, (void *) connection);
|
/*
|
||||||
|
* Inform failed to add to wait event set with a debug message as this
|
||||||
|
* is too detailed information for users. We let the code flow just in
|
||||||
|
* case it can successfully finish the execution.
|
||||||
|
*/
|
||||||
|
ereport(DEBUG1, (errcode(ERRCODE_CONNECTION_FAILURE),
|
||||||
|
errmsg("Adding wait event for node %s:%d failed. "
|
||||||
|
"The socket was: %d",
|
||||||
|
connection->hostname,
|
||||||
|
connection->port, sock)));
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
long timeout = 0; /* do not wait at all */
|
long timeout = 0; /* do not wait at all */
|
||||||
int eventCount = WaitEventSetWait(waitEventSet, timeout, events,
|
int eventCount = WaitEventSetWait(waitEventSet, timeout, events,
|
||||||
|
|
Loading…
Reference in New Issue