PostgreSQL Source Code
git master
|
#include <signal.h>
Go to the source code of this file.
Functions | |
void | ApplyWorkerMain (Datum main_arg) |
void | ParallelApplyWorkerMain (Datum main_arg) |
bool | IsLogicalWorker (void) |
bool | IsLogicalParallelApplyWorker (void) |
void | HandleParallelApplyMessageInterrupt (void) |
void | HandleParallelApplyMessages (void) |
void | LogicalRepWorkersWakeupAtCommit (Oid subid) |
void | AtEOXact_LogicalRepWorkers (bool isCommit) |
Variables | |
PGDLLIMPORT volatile sig_atomic_t | ParallelApplyMessagePending |
void ApplyWorkerMain | ( | Datum | main_arg | ) |
Definition at line 4473 of file worker.c.
References AllTablesyncsReady(), am_tablesync_worker(), BackgroundWorkerUnblockSignals(), Subscription::binary, CacheRegisterSyscacheCallback(), CommitTransactionCommand(), Subscription::conninfo, DatumGetInt32(), DEBUG1, die, elog(), ereport, err(), errcode(), errmsg(), errmsg_internal(), ERROR, GetCurrentTimestamp(), InitializeApplyWorker(), invalidate_syncing_table_states(), InvalidOid, InvalidXLogRecPtr, LogicalRepWorker::last_recv_time, LogicalRepWorker::last_send_time, load_file(), LOGICALREP_PROTO_STREAM_PARALLEL_VERSION_NUM, LOGICALREP_PROTO_STREAM_VERSION_NUM, LOGICALREP_PROTO_TWOPHASE_VERSION_NUM, LOGICALREP_PROTO_VERSION_NUM, LOGICALREP_STREAM_OFF, LOGICALREP_STREAM_PARALLEL, LOGICALREP_TWOPHASE_STATE_DISABLED, LOGICALREP_TWOPHASE_STATE_ENABLED, LOGICALREP_TWOPHASE_STATE_PENDING, logicalrep_worker_attach(), LogRepWorkerWalRcvConn, MyLogicalRepWorker, MySubscription, Subscription::name, NAMEDATALEN, Subscription::oid, OidIsValid, options, Subscription::origin, LogicalRepWorker::parallel_apply, pqsignal(), proc_exit(), pstrdup(), Subscription::publications, LogicalRepWorker::relid, ReplicationOriginNameForLogicalRep(), replorigin_by_name(), replorigin_create(), replorigin_session_get_progress(), replorigin_session_origin, replorigin_session_setup(), LogicalRepWorker::reply_time, server_version, set_apply_error_context_origin(), SIGHUP, SignalHandlerForConfigReload(), Subscription::slotname, start_apply(), start_table_sync(), StartTransactionCommand(), Subscription::stream, SUBSCRIPTIONRELMAP, Subscription::twophasestate, UpdateTwoPhaseState(), walrcv_connect, walrcv_identify_system, walrcv_server_version, and walrcv_startstreaming.
void AtEOXact_LogicalRepWorkers | ( | bool | isCommit | ) |
Definition at line 4964 of file worker.c.
References lfirst, lfirst_oid, logicalrep_worker_wakeup_ptr(), logicalrep_workers_find(), LW_SHARED, LWLockAcquire(), LWLockRelease(), NIL, and on_commit_wakeup_workers_subids.
Referenced by AbortTransaction(), CommitTransaction(), and PrepareTransaction().
void HandleParallelApplyMessageInterrupt | ( | void | ) |
Definition at line 986 of file applyparallelworker.c.
References InterruptPending, MyLatch, ParallelApplyMessagePending, and SetLatch().
Referenced by procsignal_sigusr1_handler().
void HandleParallelApplyMessages | ( | void | ) |
Definition at line 1060 of file applyparallelworker.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, appendBinaryStringInfo(), StringInfoData::data, data, ereport, errcode(), errmsg(), ERROR, ParallelApplyWorkerInfo::error_mq_handle, HandleParallelApplyMessage(), HOLD_INTERRUPTS, initStringInfo(), lfirst, MemoryContextReset(), MemoryContextSwitchTo(), ParallelApplyMessagePending, ParallelApplyWorkerPool, pfree(), res, RESUME_INTERRUPTS, shm_mq_receive(), SHM_MQ_SUCCESS, SHM_MQ_WOULD_BLOCK, and TopMemoryContext.
Referenced by ProcessInterrupts().
bool IsLogicalParallelApplyWorker | ( | void | ) |
Definition at line 4714 of file worker.c.
References am_parallel_apply_worker(), and IsLogicalWorker().
Referenced by mq_putmessage().
bool IsLogicalWorker | ( | void | ) |
Definition at line 4705 of file worker.c.
References MyLogicalRepWorker.
Referenced by IsLogicalParallelApplyWorker(), and ProcessInterrupts().
void LogicalRepWorkersWakeupAtCommit | ( | Oid | subid | ) |
Definition at line 4950 of file worker.c.
References list_append_unique_oid(), MemoryContextSwitchTo(), on_commit_wakeup_workers_subids, and TopTransactionContext.
Referenced by AlterObjectRename_internal(), AlterSubscription(), and AlterSubscriptionOwner_internal().
void ParallelApplyWorkerMain | ( | Datum | main_arg | ) |
Definition at line 863 of file applyparallelworker.c.
References Assert(), BackgroundWorkerUnblockSignals(), before_shmem_exit(), BackgroundWorker::bgw_extra, CacheRegisterSyscacheCallback(), CommitTransactionCommand(), DatumGetInt32(), die, dsm_attach(), dsm_segment_address(), ereport, errcode(), errmsg(), ERROR, LogicalRepWorker::generation, InitializeApplyWorker(), invalidate_syncing_table_states(), InvalidBackendId, InvalidOid, LogicalRepWorker::last_recv_time, LogicalRepWorker::last_send_time, LogicalRepWorker::leader_pid, LogicalParallelApplyLoop(), logicalrep_worker_attach(), ParallelApplyWorkerShared::logicalrep_worker_generation, ParallelApplyWorkerShared::logicalrep_worker_slot_no, ParallelApplyWorkerShared::mutex, MyBgworkerEntry, MyLogicalRepWorker, MyParallelShared, MyProc, MySubscription, NAMEDATALEN, Subscription::oid, pa_shutdown(), PARALLEL_APPLY_KEY_ERROR_QUEUE, PARALLEL_APPLY_KEY_MQ, PARALLEL_APPLY_KEY_SHARED, PG_LOGICAL_APPLY_SHM_MAGIC, PointerGetDatum(), pq_redirect_to_shm_mq(), pq_set_parallel_leader(), pqsignal(), ReplicationOriginNameForLogicalRep(), replorigin_by_name(), replorigin_session_origin, replorigin_session_setup(), LogicalRepWorker::reply_time, set_apply_error_context_origin(), shm_mq_attach(), shm_mq_set_receiver(), shm_mq_set_sender(), shm_toc_attach(), shm_toc_lookup(), SIGHUP, SignalHandlerForConfigReload(), SignalHandlerForShutdownRequest(), SpinLockAcquire, SpinLockRelease, StartTransactionCommand(), and SUBSCRIPTIONRELMAP.
|
extern |
Definition at line 245 of file applyparallelworker.c.
Referenced by HandleParallelApplyMessageInterrupt(), HandleParallelApplyMessages(), and ProcessInterrupts().