60#define IsParallelWorker() (ParallelWorkerNumber >= 0)
63 const char *function_name,
int nworkers);
PGDLLIMPORT volatile sig_atomic_t ParallelMessagePending
void HandleParallelMessageInterrupt(void)
void InitializeParallelDSM(ParallelContext *pcxt)
PGDLLIMPORT int ParallelWorkerNumber
void WaitForParallelWorkersToFinish(ParallelContext *pcxt)
void LaunchParallelWorkers(ParallelContext *pcxt)
void ReinitializeParallelDSM(ParallelContext *pcxt)
void HandleParallelMessages(void)
void DestroyParallelContext(ParallelContext *pcxt)
void ParallelWorkerReportLastRecEnd(XLogRecPtr last_xlog_end)
PGDLLIMPORT bool InitializingParallelWorker
ParallelContext * CreateParallelContext(const char *library_name, const char *function_name, int nworkers)
bool ParallelContextActive(void)
void ParallelWorkerMain(Datum main_arg)
void(* parallel_worker_main_type)(dsm_segment *seg, shm_toc *toc)
struct ParallelWorkerContext ParallelWorkerContext
void ReinitializeParallelWorkers(ParallelContext *pcxt, int nworkers_to_launch)
struct ParallelContext ParallelContext
void WaitForParallelWorkersToAttach(ParallelContext *pcxt)
struct ParallelWorkerInfo ParallelWorkerInfo
void AtEOSubXact_Parallel(bool isCommit, SubTransactionId mySubId)
void AtEOXact_Parallel(bool isCommit)
bool * known_attached_workers
ErrorContextCallback * error_context_stack
shm_toc_estimator estimator
int nknown_attached_workers
ParallelWorkerInfo * worker
BackgroundWorkerHandle * bgwhandle
shm_mq_handle * error_mqh