diff --git a/contrib/worker_spi/worker_spi.c b/contrib/worker_spi/worker_spi.c index ef19e4b39eb..14b5045caa4 100644 --- a/contrib/worker_spi/worker_spi.c +++ b/contrib/worker_spi/worker_spi.c @@ -344,8 +344,6 @@ _PG_init(void) worker.bgw_start_time = BgWorkerStart_RecoveryFinished; worker.bgw_restart_time = BGW_NEVER_RESTART; worker.bgw_main = worker_spi_main; - worker.bgw_sighup = NULL; - worker.bgw_sigterm = NULL; /* * Now fill in worker-specific data, and do the actual registrations. @@ -375,8 +373,6 @@ worker_spi_launch(PG_FUNCTION_ARGS) worker.bgw_main = NULL; /* new worker might not have library loaded */ sprintf(worker.bgw_library_name, "worker_spi"); sprintf(worker.bgw_function_name, "worker_spi_main"); - worker.bgw_sighup = NULL; /* new worker might not have library loaded */ - worker.bgw_sigterm = NULL; /* new worker might not have library loaded */ snprintf(worker.bgw_name, BGW_MAXLEN, "worker %d", i); worker.bgw_main_arg = Int32GetDatum(i); diff --git a/doc/src/sgml/bgworker.sgml b/doc/src/sgml/bgworker.sgml index 9d9b631ac1a..268e1cd2153 100644 --- a/doc/src/sgml/bgworker.sgml +++ b/doc/src/sgml/bgworker.sgml @@ -48,7 +48,6 @@ The structure BackgroundWorker is defined thus: typedef void (*bgworker_main_type)(void *main_arg); -typedef void (*bgworker_sighdlr_type)(SIGNAL_ARGS); typedef struct BackgroundWorker { char bgw_name[BGW_MAXLEN]; @@ -59,8 +58,6 @@ typedef struct BackgroundWorker char bgw_library_name[BGW_MAXLEN]; /* only if bgw_main is NULL */ char bgw_function_name[BGW_MAXLEN]; /* only if bgw_main is NULL */ Datum bgw_main_arg; - bgworker_sighdlr_type bgw_sighup; - bgworker_sighdlr_type bgw_sigterm; } BackgroundWorker; @@ -138,17 +135,6 @@ typedef struct BackgroundWorker bgw_main is NULL. - - bgw_sighup and bgw_sigterm are - pointers to functions that will be installed as signal handlers for the new - process. If bgw_sighup is NULL, then SIG_IGN - is used; if bgw_sigterm is NULL, a handler is installed that - will terminate the process after logging a suitable message. These - fields should not be used if bgw_main is NULL; instead, - the worker process should set its own signal handlers before calling - BackgroundWorkerUnblockSignals(). - - Once running, the process can connect to a database by calling BackgroundWorkerInitializeConnection(char *dbname, char *username). This allows the process to run transactions and queries using the @@ -163,7 +149,7 @@ typedef struct BackgroundWorker Signals are initially blocked when control reaches the bgw_main function, and must be unblocked by it; this is to - allow the process to further customize its signal handlers, if necessary. + allow the process to customize its signal handlers, if necessary. Signals can be unblocked in the new process by calling BackgroundWorkerUnblockSignals and blocked by calling BackgroundWorkerBlockSignals. diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index 3728d85486d..ada24e905e6 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -247,8 +247,6 @@ BackgroundWorkerStateChange(void) rw->rw_worker.bgw_restart_time = slot->worker.bgw_restart_time; rw->rw_worker.bgw_main = slot->worker.bgw_main; rw->rw_worker.bgw_main_arg = slot->worker.bgw_main_arg; - rw->rw_worker.bgw_sighup = slot->worker.bgw_sighup; - rw->rw_worker.bgw_sigterm = slot->worker.bgw_sigterm; /* Initialize postmaster bookkeeping. */ rw->rw_backend = NULL; diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index d9b800c4e70..7894217ed52 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -5357,17 +5357,8 @@ do_start_bgworker(void) pqsignal(SIGUSR1, bgworker_sigusr1_handler); pqsignal(SIGFPE, SIG_IGN); } - - /* SIGTERM and SIGHUP are configurable */ - if (worker->bgw_sigterm) - pqsignal(SIGTERM, worker->bgw_sigterm); - else - pqsignal(SIGTERM, bgworker_die); - - if (worker->bgw_sighup) - pqsignal(SIGHUP, worker->bgw_sighup); - else - pqsignal(SIGHUP, SIG_IGN); + pqsignal(SIGTERM, bgworker_die); + pqsignal(SIGHUP, SIG_IGN); pqsignal(SIGQUIT, bgworker_quickdie); InitializeTimeouts(); /* establishes SIGALRM handler */ diff --git a/src/include/postmaster/bgworker.h b/src/include/postmaster/bgworker.h index 794eb390725..b260dc5e4e8 100644 --- a/src/include/postmaster/bgworker.h +++ b/src/include/postmaster/bgworker.h @@ -53,7 +53,6 @@ typedef void (*bgworker_main_type) (Datum main_arg); -typedef void (*bgworker_sighdlr_type) (SIGNAL_ARGS); /* * Points in time at which a bgworker can request to be started @@ -79,8 +78,6 @@ typedef struct BackgroundWorker char bgw_library_name[BGW_MAXLEN]; /* only if bgw_main is NULL */ char bgw_function_name[BGW_MAXLEN]; /* only if bgw_main is NULL */ Datum bgw_main_arg; - bgworker_sighdlr_type bgw_sighup; - bgworker_sighdlr_type bgw_sigterm; } BackgroundWorker; /* Register a new bgworker during shared_preload_libraries */