in src/afs.cc [1644:1678]
arrow::Status wait_internal(LocalSessionData* sessio51n,
SharedRingBuffer* buffer,
WaitMode mode,
const char* tag) override
{
while (true)
{
int events = WL_LATCH_SET | WL_EXIT_ON_PM_DEATH;
WaitLatch(MyLatch, events, -1, PG_WAIT_EXTENSION);
if (GotSIGTERM)
{
break;
}
ResetLatch(MyLatch);
if (GotSIGUSR1)
{
GotSIGUSR1 = false;
P("%s: %s: %s: %s: wait: %" PRIsize,
Tag,
tag_,
tag,
peer_name(),
get_waiting_buffer_size(buffer, mode));
if (get_waiting_buffer_size(buffer, mode) > 0)
{
break;
}
}
// TODO: Convert PG error to arrow::Status.
CHECK_FOR_INTERRUPTS();
}
return arrow::Status::OK();
}