LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE);
DataChecksumState->success = DATACHECKSUMSWORKER_FAILED;
+ DataChecksumState->worker_pid = InvalidPid;
LWLockRelease(DataChecksumsWorkerLock);
memset(&bgw, 0, sizeof(bgw));
{
LWLockRelease(DataChecksumsWorkerLock);
pgstat_report_activity(STATE_IDLE, NULL);
- LWLockAcquire(DataChecksumsWorkerLock, LW_EXCLUSIVE);
- DataChecksumState->worker_pid = InvalidPid;
- LWLockRelease(DataChecksumsWorkerLock);
return DataChecksumState->success;
}
LWLockRelease(DataChecksumsWorkerLock);
ereport(LOG,
errmsg("data checksums launcher exiting while worker is still running, signalling worker"));
kill(DataChecksumState->worker_pid, SIGTERM);
+ DataChecksumState->worker_pid = InvalidPid;
}
LWLockRelease(DataChecksumsWorkerLock);
}