PostgreSQL Source Code
git master
|
#include "postgres.h"
#include <sys/time.h>
#include "miscadmin.h"
#include "storage/proc.h"
#include "utils/timeout.h"
#include "utils/timestamp.h"
Go to the source code of this file.
Data Structures | |
struct | timeout_params |
Macros | |
#define | disable_alarm() (alarm_enabled = false) |
#define | enable_alarm() (alarm_enabled = true) |
Typedefs | |
typedef struct timeout_params | timeout_params |
Variables | |
static timeout_params | all_timeouts [MAX_TIMEOUTS] |
static bool | all_timeouts_initialized = false |
static volatile int | num_active_timeouts = 0 |
static timeout_params *volatile | active_timeouts [MAX_TIMEOUTS] |
static volatile sig_atomic_t | alarm_enabled = false |
static volatile sig_atomic_t | signal_pending = false |
static TimestampTz | signal_due_at = 0 |
#define disable_alarm | ( | ) | (alarm_enabled = false) |
Definition at line 68 of file timeout.c.
Referenced by disable_all_timeouts(), disable_timeout(), disable_timeouts(), enable_timeout_after(), enable_timeout_at(), enable_timeouts(), handle_sig_alarm(), InitializeTimeouts(), and reschedule_timeouts().
#define enable_alarm | ( | ) | (alarm_enabled = true) |
Definition at line 69 of file timeout.c.
Referenced by schedule_alarm().
typedef struct timeout_params timeout_params |
void disable_all_timeouts | ( | bool | keep_indicators | ) |
Definition at line 687 of file timeout.c.
References timeout_params::active, disable_alarm, i, timeout_params::indicator, MAX_TIMEOUTS, and num_active_timeouts.
Referenced by AutoVacLauncherMain(), PostgresMain(), ResolveRecoveryConflictWithBufferPin(), and ResolveRecoveryConflictWithLock().
Definition at line 621 of file timeout.c.
References timeout_params::active, all_timeouts_initialized, Assert, disable_alarm, find_active_timeout(), GetCurrentTimestamp(), timeout_params::indicator, num_active_timeouts, remove_timeout_index(), schedule_alarm(), and timeout_params::timeout_handler.
Referenced by BackendInitialize(), disable_statement_timeout(), enable_statement_timeout(), PerformAuthentication(), PostgresMain(), ProcSleep(), and StandbyTimeoutHandler().
void disable_timeouts | ( | const DisableTimeoutParams * | timeouts, |
int | count | ||
) |
Definition at line 654 of file timeout.c.
References timeout_params::active, all_timeouts_initialized, Assert, disable_alarm, find_active_timeout(), GetCurrentTimestamp(), i, DisableTimeoutParams::id, timeout_params::indicator, num_active_timeouts, remove_timeout_index(), schedule_alarm(), and timeout_params::timeout_handler.
Referenced by LockErrorCleanup(), and ProcSleep().
|
static |
Definition at line 156 of file timeout.c.
References timeout_params::active, all_timeouts_initialized, Assert, timeout_params::fin_time, find_active_timeout(), i, timeout_params::indicator, insert_timeout(), now(), num_active_timeouts, remove_timeout_index(), timeout_params::start_time, and timeout_params::timeout_handler.
Referenced by enable_timeout_after(), enable_timeout_at(), and enable_timeouts().
void enable_timeout_after | ( | TimeoutId | id, |
int | delay_ms | ||
) |
Definition at line 524 of file timeout.c.
References disable_alarm, enable_timeout(), timeout_params::fin_time, GetCurrentTimestamp(), now(), schedule_alarm(), and TimestampTzPlusMilliseconds.
Referenced by BackendInitialize(), enable_statement_timeout(), PerformAuthentication(), PostgresMain(), and ProcSleep().
void enable_timeout_at | ( | TimeoutId | id, |
TimestampTz | fin_time | ||
) |
Definition at line 549 of file timeout.c.
References disable_alarm, enable_timeout(), GetCurrentTimestamp(), now(), and schedule_alarm().
void enable_timeouts | ( | const EnableTimeoutParams * | timeouts, |
int | count | ||
) |
Definition at line 572 of file timeout.c.
References disable_alarm, elog, enable_timeout(), ERROR, timeout_params::fin_time, GetCurrentTimestamp(), i, EnableTimeoutParams::id, now(), schedule_alarm(), TimestampTzPlusMilliseconds, TMPARAM_AFTER, TMPARAM_AT, and generate_unaccent_rules::type.
Referenced by ProcSleep(), ResolveRecoveryConflictWithBufferPin(), and ResolveRecoveryConflictWithLock().
|
static |
Definition at line 94 of file timeout.c.
References i, and num_active_timeouts.
Referenced by disable_timeout(), disable_timeouts(), and enable_timeout().
Definition at line 716 of file timeout.c.
References timeout_params::active.
Referenced by disable_statement_timeout(), and enable_statement_timeout().
TimestampTz get_timeout_finish_time | ( | TimeoutId | id | ) |
Definition at line 763 of file timeout.c.
References timeout_params::fin_time.
Referenced by ProcessInterrupts().
Definition at line 729 of file timeout.c.
References timeout_params::indicator.
Referenced by ProcessInterrupts().
TimestampTz get_timeout_start_time | ( | TimeoutId | id | ) |
Definition at line 749 of file timeout.c.
References timeout_params::start_time.
Referenced by ProcSleep().
|
static |
Definition at line 348 of file timeout.c.
References alarm_enabled, disable_alarm, timeout_params::fin_time, GetCurrentTimestamp(), HOLD_INTERRUPTS, timeout_params::indicator, MyLatch, now(), num_active_timeouts, remove_timeout_index(), RESUME_INTERRUPTS, schedule_alarm(), SetLatch(), signal_pending, and timeout_params::timeout_handler.
Referenced by InitializeTimeouts().
void InitializeTimeouts | ( | void | ) |
Definition at line 435 of file timeout.c.
References timeout_params::active, all_timeouts_initialized, disable_alarm, timeout_params::fin_time, handle_sig_alarm(), i, timeout_params::index, timeout_params::indicator, MAX_TIMEOUTS, num_active_timeouts, pqsignal(), SIGALRM, timeout_params::start_time, and timeout_params::timeout_handler.
Referenced by AutoVacLauncherMain(), AutoVacWorkerMain(), BackendInitialize(), PostgresMain(), StartBackgroundWorker(), StartupProcessMain(), and WalSndSignals().
|
static |
Definition at line 112 of file timeout.c.
References timeout_params::active, Assert, elog, FATAL, i, timeout_params::index, and num_active_timeouts.
Referenced by enable_timeout().
TimeoutId RegisterTimeout | ( | TimeoutId | id, |
timeout_handler_proc | handler | ||
) |
Definition at line 469 of file timeout.c.
References all_timeouts_initialized, Assert, ereport, errcode(), errmsg(), FATAL, MAX_TIMEOUTS, timeout_params::timeout_handler, and USER_TIMEOUT.
Referenced by BackendInitialize(), InitPostgres(), and StartupProcessMain().
|
static |
Definition at line 135 of file timeout.c.
References timeout_params::active, Assert, elog, FATAL, i, timeout_params::index, and num_active_timeouts.
Referenced by disable_timeout(), disable_timeouts(), enable_timeout(), and handle_sig_alarm().
void reschedule_timeouts | ( | void | ) |
Definition at line 504 of file timeout.c.
References all_timeouts_initialized, disable_alarm, GetCurrentTimestamp(), num_active_timeouts, and schedule_alarm().
Referenced by AbortSubTransaction(), and AbortTransaction().
|
static |
Definition at line 206 of file timeout.c.
References elog, enable_alarm, FATAL, timeout_params::fin_time, itimerval::it_value, ITIMER_REAL, MemSet, num_active_timeouts, setitimer(), signal_due_at, signal_pending, and TimestampDifference().
Referenced by disable_timeout(), disable_timeouts(), enable_timeout_after(), enable_timeout_at(), enable_timeouts(), handle_sig_alarm(), and reschedule_timeouts().
|
static |
|
static |
Definition at line 66 of file timeout.c.
Referenced by handle_sig_alarm().
|
static |
Definition at line 45 of file timeout.c.
Referenced by disable_timeout(), disable_timeouts(), enable_timeout(), InitializeTimeouts(), RegisterTimeout(), and reschedule_timeouts().
|
static |
Definition at line 51 of file timeout.c.
Referenced by disable_all_timeouts(), disable_timeout(), disable_timeouts(), enable_timeout(), find_active_timeout(), handle_sig_alarm(), InitializeTimeouts(), insert_timeout(), remove_timeout_index(), reschedule_timeouts(), and schedule_alarm().
|
static |
Definition at line 77 of file timeout.c.
Referenced by schedule_alarm().
|
static |
Definition at line 76 of file timeout.c.
Referenced by handle_sig_alarm(), and schedule_alarm().