|
PostgreSQL Source Code git master
|
#include "postgres.h"#include <limits.h>#include <unistd.h>#include <signal.h>#include "access/parallel.h"#include "access/slru.h"#include "access/transam.h"#include "access/xact.h"#include "catalog/pg_database.h"#include "commands/async.h"#include "common/hashfn.h"#include "funcapi.h"#include "libpq/libpq.h"#include "libpq/pqformat.h"#include "miscadmin.h"#include "storage/ipc.h"#include "storage/lmgr.h"#include "storage/procsignal.h"#include "tcop/tcopprot.h"#include "utils/builtins.h"#include "utils/guc_hooks.h"#include "utils/memutils.h"#include "utils/ps_status.h"#include "utils/snapmgr.h"#include "utils/timestamp.h"
Go to the source code of this file.
Data Structures | |
| struct | AsyncQueueEntry |
| struct | QueuePosition |
| struct | QueueBackendStatus |
| struct | AsyncQueueControl |
| struct | ListenAction |
| struct | ActionList |
| struct | Notification |
| struct | NotificationList |
| struct | NotificationHash |
Macros | |
| #define | NOTIFY_PAYLOAD_MAX_LENGTH (BLCKSZ - NAMEDATALEN - 128) |
| #define | QUEUEALIGN(len) INTALIGN(len) |
| #define | AsyncQueueEntryEmptySize (offsetof(AsyncQueueEntry, data) + 2) |
| #define | QUEUE_POS_PAGE(x) ((x).page) |
| #define | QUEUE_POS_OFFSET(x) ((x).offset) |
| #define | SET_QUEUE_POS(x, y, z) |
| #define | QUEUE_POS_EQUAL(x, y) ((x).page == (y).page && (x).offset == (y).offset) |
| #define | QUEUE_POS_IS_ZERO(x) ((x).page == 0 && (x).offset == 0) |
| #define | QUEUE_POS_MIN(x, y) |
| #define | QUEUE_POS_MAX(x, y) |
| #define | QUEUE_CLEANUP_DELAY 4 |
| #define | QUEUE_HEAD (asyncQueueControl->head) |
| #define | QUEUE_TAIL (asyncQueueControl->tail) |
| #define | QUEUE_STOP_PAGE (asyncQueueControl->stopPage) |
| #define | QUEUE_FIRST_LISTENER (asyncQueueControl->firstListener) |
| #define | QUEUE_BACKEND_PID(i) (asyncQueueControl->backend[i].pid) |
| #define | QUEUE_BACKEND_DBOID(i) (asyncQueueControl->backend[i].dboid) |
| #define | QUEUE_NEXT_LISTENER(i) (asyncQueueControl->backend[i].nextListener) |
| #define | QUEUE_BACKEND_POS(i) (asyncQueueControl->backend[i].pos) |
| #define | NotifyCtl (&NotifyCtlData) |
| #define | QUEUE_PAGESIZE BLCKSZ |
| #define | QUEUE_FULL_WARN_INTERVAL 5000 /* warn at most once every 5s */ |
| #define | MIN_HASHABLE_NOTIFIES 16 /* threshold to build hashtab */ |
Typedefs | |
| typedef struct AsyncQueueEntry | AsyncQueueEntry |
| typedef struct QueuePosition | QueuePosition |
| typedef struct QueueBackendStatus | QueueBackendStatus |
| typedef struct AsyncQueueControl | AsyncQueueControl |
| typedef struct ActionList | ActionList |
| typedef struct Notification | Notification |
| typedef struct NotificationList | NotificationList |
Enumerations | |
| enum | ListenActionKind { LISTEN_LISTEN , LISTEN_UNLISTEN , LISTEN_UNLISTEN_ALL } |
Variables | |
| static AsyncQueueControl * | asyncQueueControl |
| static SlruCtlData | NotifyCtlData |
| static List * | listenChannels = NIL |
| static ActionList * | pendingActions = NULL |
| static NotificationList * | pendingNotifies = NULL |
| volatile sig_atomic_t | notifyInterruptPending = false |
| static bool | unlistenExitRegistered = false |
| static bool | amRegisteredListener = false |
| static bool | tryAdvanceTail = false |
| bool | Trace_notify = false |
| int | max_notify_queue_pages = 1048576 |
| #define AsyncQueueEntryEmptySize (offsetof(AsyncQueueEntry, data) + 2) |
| #define MIN_HASHABLE_NOTIFIES 16 /* threshold to build hashtab */ |
| #define NOTIFY_PAYLOAD_MAX_LENGTH (BLCKSZ - NAMEDATALEN - 128) |
| #define NotifyCtl (&NotifyCtlData) |
| #define QUEUE_BACKEND_DBOID | ( | i | ) | (asyncQueueControl->backend[i].dboid) |
| #define QUEUE_BACKEND_PID | ( | i | ) | (asyncQueueControl->backend[i].pid) |
| #define QUEUE_BACKEND_POS | ( | i | ) | (asyncQueueControl->backend[i].pos) |
| #define QUEUE_FIRST_LISTENER (asyncQueueControl->firstListener) |
| #define QUEUE_FULL_WARN_INTERVAL 5000 /* warn at most once every 5s */ |
| #define QUEUE_HEAD (asyncQueueControl->head) |
| #define QUEUE_NEXT_LISTENER | ( | i | ) | (asyncQueueControl->backend[i].nextListener) |
| #define QUEUE_STOP_PAGE (asyncQueueControl->stopPage) |
| #define QUEUE_TAIL (asyncQueueControl->tail) |
| typedef struct ActionList ActionList |
| typedef struct AsyncQueueControl AsyncQueueControl |
| typedef struct AsyncQueueEntry AsyncQueueEntry |
| typedef struct Notification Notification |
| typedef struct NotificationList NotificationList |
| typedef struct QueueBackendStatus QueueBackendStatus |
| typedef struct QueuePosition QueuePosition |
| enum ListenActionKind |
| Enumerator | |
|---|---|
| LISTEN_LISTEN | |
| LISTEN_UNLISTEN | |
| LISTEN_UNLISTEN_ALL | |
|
static |
Definition at line 2409 of file async.c.
References Assert(), CurTransactionContext, HASHCTL::entrysize, NotificationList::events, HASHCTL::hash, HASH_COMPARE, HASH_CONTEXT, hash_create(), HASH_ELEM, HASH_ENTER, HASH_FUNCTION, hash_search(), NotificationList::hashtab, HASHCTL::hcxt, HASHCTL::keysize, lappend(), lfirst, list_length(), HASHCTL::match, MIN_HASHABLE_NOTIFIES, NIL, notification_hash(), notification_match(), and pendingNotifies.
Referenced by Async_Notify(), and AtSubCommit_Notify().
| void Async_Listen | ( | const char * | channel | ) |
Definition at line 737 of file async.c.
References DEBUG1, elog, LISTEN_LISTEN, MyProcPid, queue_listen(), and Trace_notify.
Referenced by standard_ProcessUtility().
| void Async_Notify | ( | const char * | channel, |
| const char * | payload | ||
| ) |
Definition at line 590 of file async.c.
References AddEventToPendingNotifies(), AsyncExistsPendingNotify(), Notification::channel_len, CurTransactionContext, Notification::data, data, DEBUG1, elog, ereport, errcode(), errmsg(), ERROR, NotificationList::events, GetCurrentTransactionNestLevel(), NotificationList::hashtab, IsParallelWorker, list_make1, MemoryContextAlloc(), MemoryContextSwitchTo(), NAMEDATALEN, NotificationList::nestingLevel, NOTIFY_PAYLOAD_MAX_LENGTH, palloc(), Notification::payload_len, pendingNotifies, pfree(), TopTransactionContext, Trace_notify, and NotificationList::upper.
Referenced by pg_notify(), standard_ProcessUtility(), and triggered_change_notification().
| void Async_Unlisten | ( | const char * | channel | ) |
Definition at line 751 of file async.c.
References DEBUG1, elog, LISTEN_UNLISTEN, MyProcPid, pendingActions, queue_listen(), Trace_notify, and unlistenExitRegistered.
Referenced by standard_ProcessUtility().
| void Async_UnlistenAll | ( | void | ) |
Definition at line 769 of file async.c.
References DEBUG1, elog, LISTEN_UNLISTEN_ALL, MyProcPid, pendingActions, queue_listen(), Trace_notify, and unlistenExitRegistered.
Referenced by DiscardAll(), and standard_ProcessUtility().
|
static |
Definition at line 822 of file async.c.
References asyncQueueUnregister(), and Exec_UnlistenAllCommit().
Referenced by Exec_ListenPreCommit().
|
static |
Definition at line 2368 of file async.c.
References Notification::channel_len, Notification::data, NotificationList::events, HASH_FIND, hash_search(), NotificationList::hashtab, lfirst, Notification::payload_len, and pendingNotifies.
Referenced by Async_Notify(), and AtSubCommit_Notify().
| void AsyncNotifyFreezeXids | ( | TransactionId | newFrozenXid | ) |
Definition at line 2196 of file async.c.
References asyncQueueAdvance(), FrozenTransactionId, InvalidTransactionId, AsyncQueueEntry::length, LW_EXCLUSIVE, LW_SHARED, LWLockAcquire(), LWLockRelease(), NotifyCtl, QUEUE_HEAD, QUEUE_POS_EQUAL, QUEUE_POS_OFFSET, QUEUE_POS_PAGE, QUEUE_TAIL, SimpleLruGetBankLock(), SimpleLruReadPage(), TransactionIdDidCommit(), TransactionIdIsNormal, TransactionIdPrecedes(), and AsyncQueueEntry::xid.
Referenced by vac_truncate_clog().
Definition at line 1355 of file async.c.
References asyncQueueAdvance(), asyncQueueNotificationToEntry(), AsyncQueueEntry::data, AsyncQueueEntry::dboid, NotificationList::events, InvalidOid, InvalidTransactionId, AsyncQueueEntry::length, lfirst, lnext(), LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), NotifyCtl, pendingNotifies, QUEUE_CLEANUP_DELAY, QUEUE_HEAD, QUEUE_PAGESIZE, QUEUE_POS_IS_ZERO, QUEUE_POS_OFFSET, QUEUE_POS_PAGE, SimpleLruGetBankLock(), SimpleLruReadPage(), SimpleLruZeroPage(), tryAdvanceTail, and AsyncQueueEntry::xid.
Referenced by PreCommit_Notify().
|
static |
Definition at line 1286 of file async.c.
References Assert(), AsyncQueueEntryEmptySize, QUEUE_PAGESIZE, QUEUE_POS_OFFSET, QUEUE_POS_PAGE, QUEUEALIGN, and SET_QUEUE_POS.
Referenced by AsyncNotifyFreezeXids(), asyncQueueAddEntries(), and asyncQueueProcessPageEntries().
|
static |
Definition at line 2114 of file async.c.
References Assert(), asyncQueuePagePrecedes(), i, INVALID_PROC_NUMBER, InvalidPid, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), NotifyCtl, QUEUE_BACKEND_PID, QUEUE_BACKEND_POS, QUEUE_FIRST_LISTENER, QUEUE_HEAD, QUEUE_NEXT_LISTENER, QUEUE_POS_MIN, QUEUE_POS_PAGE, QUEUE_STOP_PAGE, QUEUE_TAIL, SimpleLruTruncate(), and SLRU_PAGES_PER_SEGMENT.
Referenced by AtCommit_Notify(), and pg_notification_queue_usage().
|
static |
Definition at line 1527 of file async.c.
References Assert(), asyncQueueControl, asyncQueueUsage(), ereport, errdetail(), errhint(), errmsg(), GetCurrentTimestamp(), i, INVALID_PROC_NUMBER, InvalidPid, AsyncQueueControl::lastQueueFillWarn, QUEUE_BACKEND_PID, QUEUE_BACKEND_POS, QUEUE_FIRST_LISTENER, QUEUE_FULL_WARN_INTERVAL, QUEUE_HEAD, QUEUE_NEXT_LISTENER, QUEUE_POS_EQUAL, QUEUE_POS_MIN, TimestampDifferenceExceeds(), and WARNING.
Referenced by PreCommit_Notify().
|
static |
Definition at line 1271 of file async.c.
References max_notify_queue_pages, QUEUE_HEAD, QUEUE_POS_PAGE, and QUEUE_TAIL.
Referenced by PreCommit_Notify().
|
static |
Definition at line 1319 of file async.c.
References Assert(), AsyncQueueEntryEmptySize, Notification::channel_len, Notification::data, AsyncQueueEntry::data, AsyncQueueEntry::dboid, GetCurrentTransactionId(), AsyncQueueEntry::length, MyDatabaseId, MyProcPid, NAMEDATALEN, NOTIFY_PAYLOAD_MAX_LENGTH, Notification::payload_len, QUEUEALIGN, AsyncQueueEntry::srcPid, and AsyncQueueEntry::xid.
Referenced by asyncQueueAddEntries().
Definition at line 475 of file async.c.
Referenced by asyncQueueAdvanceTail(), and AsyncShmemInit().
|
static |
Definition at line 1977 of file async.c.
References Assert(), asyncQueueAdvance(), AsyncQueueEntry::data, AsyncQueueEntry::dboid, InvalidTransactionId, IsListeningOn(), AsyncQueueEntry::length, listenChannels, LWLockRelease(), MyDatabaseId, NIL, NotifyCtl, NotifyMyFrontEnd(), QUEUE_PAGESIZE, QUEUE_POS_EQUAL, QUEUE_POS_OFFSET, QUEUE_POS_PAGE, SimpleLruGetBankLock(), SimpleLruReadPage_ReadOnly(), AsyncQueueEntry::srcPid, TransactionIdDidCommit(), AsyncQueueEntry::xid, and XidInMVCCSnapshot().
Referenced by asyncQueueReadAllNotifications().
|
static |
Definition at line 1851 of file async.c.
References Assert(), asyncQueueProcessPageEntries(), ExitOnAnyError, GetLatestSnapshot(), LW_SHARED, LWLockAcquire(), LWLockRelease(), MyProcNumber, MyProcPid, QUEUE_BACKEND_PID, QUEUE_BACKEND_POS, QUEUE_HEAD, QUEUE_POS_EQUAL, RegisterSnapshot(), and UnregisterSnapshot().
Referenced by Exec_ListenPreCommit(), and ProcessIncomingNotify().
|
static |
Definition at line 1230 of file async.c.
References amRegisteredListener, Assert(), i, INVALID_PROC_NUMBER, InvalidOid, InvalidPid, listenChannels, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyProcNumber, NIL, QUEUE_BACKEND_DBOID, QUEUE_BACKEND_PID, QUEUE_FIRST_LISTENER, and QUEUE_NEXT_LISTENER.
Referenced by Async_UnlistenOnExit(), AtAbort_Notify(), and AtCommit_Notify().
|
static |
Definition at line 1506 of file async.c.
References max_notify_queue_pages, QUEUE_HEAD, QUEUE_POS_PAGE, and QUEUE_TAIL.
Referenced by asyncQueueFillWarning(), and pg_notification_queue_usage().
| void AsyncShmemInit | ( | void | ) |
Definition at line 501 of file async.c.
References add_size(), asyncQueueControl, asyncQueuePagePrecedes(), i, INVALID_PROC_NUMBER, InvalidOid, InvalidPid, AsyncQueueControl::lastQueueFillWarn, MaxBackends, mul_size(), notify_buffers, NotifyCtl, QUEUE_BACKEND_DBOID, QUEUE_BACKEND_PID, QUEUE_BACKEND_POS, QUEUE_FIRST_LISTENER, QUEUE_HEAD, QUEUE_NEXT_LISTENER, QUEUE_STOP_PAGE, QUEUE_TAIL, SET_QUEUE_POS, ShmemInitStruct(), SimpleLruInit(), SlruScanDirCbDeleteAll(), SlruScanDirectory(), and SYNC_HANDLER_NONE.
Referenced by CreateOrAttachShmemStructs().
| Size AsyncShmemSize | ( | void | ) |
Definition at line 484 of file async.c.
References add_size(), MaxBackends, mul_size(), notify_buffers, and SimpleLruShmemSize().
Referenced by CalculateShmemSize().
| void AtAbort_Notify | ( | void | ) |
Definition at line 1671 of file async.c.
References amRegisteredListener, asyncQueueUnregister(), ClearPendingActionsAndNotifies(), listenChannels, and NIL.
Referenced by AbortTransaction().
| void AtCommit_Notify | ( | void | ) |
Definition at line 967 of file async.c.
References ListenAction::action, ActionList::actions, amRegisteredListener, asyncQueueAdvanceTail(), asyncQueueUnregister(), ListenAction::channel, ClearPendingActionsAndNotifies(), DEBUG1, elog, Exec_ListenCommit(), Exec_UnlistenAllCommit(), Exec_UnlistenCommit(), lfirst, LISTEN_LISTEN, LISTEN_UNLISTEN, LISTEN_UNLISTEN_ALL, listenChannels, NIL, pendingActions, pendingNotifies, SignalBackends(), Trace_notify, and tryAdvanceTail.
Referenced by CommitTransaction().
| void AtPrepare_Notify | ( | void | ) |
Definition at line 835 of file async.c.
References ereport, errcode(), errmsg(), ERROR, pendingActions, and pendingNotifies.
Referenced by PrepareTransaction().
| void AtSubAbort_Notify | ( | void | ) |
Definition at line 1761 of file async.c.
References GetCurrentTransactionNestLevel(), ActionList::nestingLevel, NotificationList::nestingLevel, pendingActions, pendingNotifies, pfree(), ActionList::upper, and NotificationList::upper.
Referenced by AbortSubTransaction().
| void AtSubCommit_Notify | ( | void | ) |
Definition at line 1691 of file async.c.
References ActionList::actions, AddEventToPendingNotifies(), Assert(), AsyncExistsPendingNotify(), NotificationList::events, GetCurrentTransactionNestLevel(), lfirst, list_concat(), ActionList::nestingLevel, NotificationList::nestingLevel, pendingActions, pendingNotifies, pfree(), ActionList::upper, and NotificationList::upper.
Referenced by CommitSubTransaction().
| bool check_notify_buffers | ( | int * | newval, |
| void ** | extra, | ||
| GucSource | source | ||
| ) |
Definition at line 2514 of file async.c.
References check_slru_buffers(), and newval.
|
static |
Definition at line 2498 of file async.c.
References pendingActions, and pendingNotifies.
Referenced by AtAbort_Notify(), and AtCommit_Notify().
|
static |
Definition at line 1135 of file async.c.
References IsListeningOn(), lappend(), listenChannels, MemoryContextSwitchTo(), pstrdup(), and TopMemoryContext.
Referenced by AtCommit_Notify().
|
static |
Definition at line 1040 of file async.c.
References amRegisteredListener, Async_UnlistenOnExit(), asyncQueueReadAllNotifications(), before_shmem_exit(), DEBUG1, elog, i, INVALID_PROC_NUMBER, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyDatabaseId, MyProcNumber, MyProcPid, QUEUE_BACKEND_DBOID, QUEUE_BACKEND_PID, QUEUE_BACKEND_POS, QUEUE_FIRST_LISTENER, QUEUE_HEAD, QUEUE_NEXT_LISTENER, QUEUE_POS_EQUAL, QUEUE_POS_MAX, QUEUE_TAIL, Trace_notify, and unlistenExitRegistered.
Referenced by PreCommit_Notify().
|
static |
Definition at line 1193 of file async.c.
References DEBUG1, elog, list_free_deep(), listenChannels, MyProcPid, NIL, and Trace_notify.
Referenced by Async_UnlistenOnExit(), and AtCommit_Notify().
|
static |
Definition at line 1162 of file async.c.
References DEBUG1, elog, foreach_delete_current, lfirst, listenChannels, MyProcPid, pfree(), and Trace_notify.
Referenced by AtCommit_Notify().
| void HandleNotifyInterrupt | ( | void | ) |
Definition at line 1804 of file async.c.
References MyLatch, notifyInterruptPending, and SetLatch().
Referenced by procsignal_sigusr1_handler().
|
static |
Definition at line 1211 of file async.c.
References lfirst, and listenChannels.
Referenced by asyncQueueProcessPageEntries(), and Exec_ListenCommit().
Definition at line 2468 of file async.c.
References Assert(), Notification::channel_len, Notification::data, DatumGetUInt32(), hash_any(), sort-test::key, and Notification::payload_len.
Referenced by AddEventToPendingNotifies().
|
static |
Definition at line 2482 of file async.c.
References Assert(), Notification::channel_len, Notification::data, and Notification::payload_len.
Referenced by AddEventToPendingNotifies().
| void NotifyMyFrontEnd | ( | const char * | channel, |
| const char * | payload, | ||
| int32 | srcPid | ||
| ) |
Definition at line 2344 of file async.c.
References buf, DestRemote, elog, INFO, pq_beginmessage(), pq_endmessage(), pq_sendint32(), pq_sendstring(), PqMsg_NotificationResponse, and whereToSendOutput.
Referenced by asyncQueueProcessPageEntries(), and ProcessParallelMessage().
| Datum pg_listening_channels | ( | PG_FUNCTION_ARGS | ) |
Definition at line 789 of file async.c.
References FuncCallContext::call_cntr, CStringGetTextDatum, list_length(), list_nth(), listenChannels, SRF_FIRSTCALL_INIT, SRF_IS_FIRSTCALL, SRF_PERCALL_SETUP, SRF_RETURN_DONE, and SRF_RETURN_NEXT.
| Datum pg_notification_queue_usage | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1481 of file async.c.
References asyncQueueAdvanceTail(), asyncQueueUsage(), LW_SHARED, LWLockAcquire(), LWLockRelease(), PG_RETURN_FLOAT8, and usage().
| Datum pg_notify | ( | PG_FUNCTION_ARGS | ) |
Definition at line 556 of file async.c.
References Async_Notify(), PG_ARGISNULL, PG_GETARG_TEXT_PP, PG_RETURN_VOID, PreventCommandDuringRecovery(), and text_to_cstring().
| void PreCommit_Notify | ( | void | ) |
Definition at line 860 of file async.c.
References AccessExclusiveLock, ListenAction::action, ActionList::actions, asyncQueueAddEntries(), asyncQueueFillWarning(), asyncQueueIsFull(), DEBUG1, elog, ereport, errcode(), errmsg(), ERROR, NotificationList::events, Exec_ListenPreCommit(), GetCurrentTransactionId(), InvalidOid, lfirst, list_head(), LISTEN_LISTEN, LISTEN_UNLISTEN, LISTEN_UNLISTEN_ALL, LockSharedObject(), LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), pendingActions, pendingNotifies, and Trace_notify.
Referenced by CommitTransaction().
|
static |
Definition at line 2303 of file async.c.
References asyncQueueReadAllNotifications(), CommitTransactionCommand(), DEBUG1, elog, listenChannels, NIL, notifyInterruptPending, pq_flush, set_ps_display(), StartTransactionCommand(), and Trace_notify.
Referenced by ProcessNotifyInterrupt().
| void ProcessNotifyInterrupt | ( | bool | flush | ) |
Definition at line 1834 of file async.c.
References IsTransactionOrTransactionBlock(), notifyInterruptPending, and ProcessIncomingNotify().
Referenced by PostgresMain(), and ProcessClientReadInterrupt().
|
static |
Definition at line 689 of file async.c.
References generate_unaccent_rules::action, ListenAction::action, ActionList::actions, ListenAction::channel, CurTransactionContext, GetCurrentTransactionNestLevel(), lappend(), list_make1, MemoryContextAlloc(), MemoryContextSwitchTo(), ActionList::nestingLevel, palloc(), pendingActions, TopTransactionContext, and ActionList::upper.
Referenced by Async_Listen(), Async_Unlisten(), and Async_UnlistenAll().
|
static |
Definition at line 1581 of file async.c.
References Assert(), asyncQueuePageDiff(), DEBUG3, elog, i, INVALID_PROC_NUMBER, InvalidPid, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MaxBackends, MyDatabaseId, MyProcPid, notifyInterruptPending, palloc(), pfree(), PROCSIG_NOTIFY_INTERRUPT, QUEUE_BACKEND_DBOID, QUEUE_BACKEND_PID, QUEUE_BACKEND_POS, QUEUE_CLEANUP_DELAY, QUEUE_FIRST_LISTENER, QUEUE_HEAD, QUEUE_NEXT_LISTENER, QUEUE_POS_EQUAL, QUEUE_POS_PAGE, and SendProcSignal().
Referenced by AtCommit_Notify().
|
static |
Definition at line 419 of file async.c.
Referenced by asyncQueueUnregister(), AtAbort_Notify(), AtCommit_Notify(), and Exec_ListenPreCommit().
|
static |
Definition at line 294 of file async.c.
Referenced by asyncQueueFillWarning(), and AsyncShmemInit().
Definition at line 320 of file async.c.
Referenced by asyncQueueProcessPageEntries(), asyncQueueUnregister(), AtAbort_Notify(), AtCommit_Notify(), Exec_ListenCommit(), Exec_UnlistenAllCommit(), Exec_UnlistenCommit(), IsListeningOn(), pg_listening_channels(), and ProcessIncomingNotify().
| int max_notify_queue_pages = 1048576 |
Definition at line 428 of file async.c.
Referenced by asyncQueueIsFull(), and asyncQueueUsage().
|
static |
| volatile sig_atomic_t notifyInterruptPending = false |
Definition at line 413 of file async.c.
Referenced by HandleNotifyInterrupt(), PostgresMain(), ProcessClientReadInterrupt(), ProcessIncomingNotify(), ProcessNotifyInterrupt(), and SignalBackends().
|
static |
Definition at line 352 of file async.c.
Referenced by Async_Unlisten(), Async_UnlistenAll(), AtCommit_Notify(), AtPrepare_Notify(), AtSubAbort_Notify(), AtSubCommit_Notify(), ClearPendingActionsAndNotifies(), PreCommit_Notify(), and queue_listen().
|
static |
Definition at line 404 of file async.c.
Referenced by AddEventToPendingNotifies(), Async_Notify(), AsyncExistsPendingNotify(), asyncQueueAddEntries(), AtCommit_Notify(), AtPrepare_Notify(), AtSubAbort_Notify(), AtSubCommit_Notify(), ClearPendingActionsAndNotifies(), and PreCommit_Notify().
| bool Trace_notify = false |
Definition at line 425 of file async.c.
Referenced by Async_Listen(), Async_Notify(), Async_Unlisten(), Async_UnlistenAll(), AtCommit_Notify(), Exec_ListenPreCommit(), Exec_UnlistenAllCommit(), Exec_UnlistenCommit(), PreCommit_Notify(), and ProcessIncomingNotify().
|
static |
Definition at line 422 of file async.c.
Referenced by asyncQueueAddEntries(), and AtCommit_Notify().
|
static |
Definition at line 416 of file async.c.
Referenced by Async_Unlisten(), Async_UnlistenAll(), and Exec_ListenPreCommit().