in src/afs.cc [612:651]
void wait_server_read(SharedRingBuffer* buffer)
{
if (ARROW_PREDICT_FALSE(sharedData_->serverPID == InvalidPid))
{
ereport(ERROR,
errcode(ERRCODE_INTERNAL_ERROR),
errmsg("%s: %s: server isn't alive", Tag, tag_));
}
P("%s: %s: %s: kill server: %d", Tag, tag_, AFS_FUNC, sharedData_->serverPID);
kill(sharedData_->serverPID, SIGUSR1);
auto restSize = buffer->rest_size();
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: wait: read: %d:%d",
Tag,
tag_,
AFS_FUNC,
buffer->rest_size(),
restSize);
if (buffer->rest_size() != restSize)
{
break;
}
}
CHECK_FOR_INTERRUPTS();
}
}