Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cdf6518

Browse files
committed
Retire PG_SETMASK() macro.
In the 90s we needed to deal with computers that still had the pre-standard signal masking APIs. That hasn't been relevant for a very long time on Unix systems, and c94ae9d got rid of a remaining dependency in our Windows porting code. PG_SETMASK didn't expose save/restore functionality, so we'd already started using sigprocmask() directly in places, creating the visual distraction of having two ways to spell it. It's not part of the API that extensions are expected to be using (but if they are, the change will be trivial). It seems like a good time to drop the old macro and just call the standard POSIX function. Reviewed-by: Nathan Bossart <[email protected]> Discussion: https://postgr.es/m/CA%2BhUKG%2BKfQgrhHP2DLTohX1WwubaCBHmTzGnAEDPZ-Gug-Xskg%40mail.gmail.com
1 parent e0d70a9 commit cdf6518

File tree

14 files changed

+22
-24
lines changed

14 files changed

+22
-24
lines changed

src/backend/access/transam/xact.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2755,7 +2755,7 @@ AbortTransaction(void)
27552755
* handler. We do this fairly early in the sequence so that the timeout
27562756
* infrastructure will be functional if needed while aborting.
27572757
*/
2758-
PG_SETMASK(&UnBlockSig);
2758+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
27592759

27602760
/*
27612761
* check the current transaction state
@@ -5115,7 +5115,7 @@ AbortSubTransaction(void)
51155115
* handler. We do this fairly early in the sequence so that the timeout
51165116
* infrastructure will be functional if needed while aborting.
51175117
*/
5118-
PG_SETMASK(&UnBlockSig);
5118+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
51195119

51205120
/*
51215121
* check the current transaction state

src/backend/postmaster/autovacuum.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ AutoVacLauncherMain(int argc, char *argv[])
568568
PG_exception_stack = &local_sigjmp_buf;
569569

570570
/* must unblock signals before calling rebuild_database_list */
571-
PG_SETMASK(&UnBlockSig);
571+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
572572

573573
/*
574574
* Set always-secure search path. Launcher doesn't connect to a database,
@@ -1589,7 +1589,7 @@ AutoVacWorkerMain(int argc, char *argv[])
15891589
/* We can now handle ereport(ERROR) */
15901590
PG_exception_stack = &local_sigjmp_buf;
15911591

1592-
PG_SETMASK(&UnBlockSig);
1592+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
15931593

15941594
/*
15951595
* Set always-secure search path, so malicious users can't redirect user

src/backend/postmaster/bgworker.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ SanityCheckBackgroundWorker(BackgroundWorker *worker, int elevel)
726726
static void
727727
bgworker_die(SIGNAL_ARGS)
728728
{
729-
PG_SETMASK(&BlockSig);
729+
sigprocmask(SIG_SETMASK, &BlockSig, NULL);
730730

731731
ereport(FATAL,
732732
(errcode(ERRCODE_ADMIN_SHUTDOWN),

src/backend/postmaster/bgwriter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ BackgroundWriterMain(void)
215215
/*
216216
* Unblock signals (they were blocked when the postmaster forked us)
217217
*/
218-
PG_SETMASK(&UnBlockSig);
218+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
219219

220220
/*
221221
* Reset hibernation state after any error.

src/backend/postmaster/checkpointer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ CheckpointerMain(void)
326326
/*
327327
* Unblock signals (they were blocked when the postmaster forked us)
328328
*/
329-
PG_SETMASK(&UnBlockSig);
329+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
330330

331331
/*
332332
* Ensure all shared memory values are set correctly for the config. Doing

src/backend/postmaster/pgarch.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ PgArchiverMain(void)
227227
pqsignal(SIGCHLD, SIG_DFL);
228228

229229
/* Unblock signals (they were blocked when the postmaster forked us) */
230-
PG_SETMASK(&UnBlockSig);
230+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
231231

232232
/* We shouldn't be launched unnecessarily. */
233233
Assert(XLogArchivingActive());

src/backend/postmaster/postmaster.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ PostmasterMain(int argc, char *argv[])
639639
* postmaster/bgworker.c and postmaster/checkpointer.c.
640640
*/
641641
pqinitmask();
642-
PG_SETMASK(&BlockSig);
642+
sigprocmask(SIG_SETMASK, &BlockSig, NULL);
643643

644644
pqsignal(SIGHUP, handle_pm_reload_request_signal);
645645
pqsignal(SIGINT, handle_pm_shutdown_request_signal);
@@ -675,7 +675,7 @@ PostmasterMain(int argc, char *argv[])
675675
#endif
676676

677677
/* Begin accepting signals. */
678-
PG_SETMASK(&UnBlockSig);
678+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
679679

680680
/*
681681
* Options setup
@@ -4321,7 +4321,7 @@ BackendInitialize(Port *port)
43214321
pqsignal(SIGTERM, process_startup_packet_die);
43224322
/* SIGQUIT handler was already set up by InitPostmasterChild */
43234323
InitializeTimeouts(); /* establishes SIGALRM handler */
4324-
PG_SETMASK(&StartupBlockSig);
4324+
sigprocmask(SIG_SETMASK, &StartupBlockSig, NULL);
43254325

43264326
/*
43274327
* Get the remote host name and port for logging and status display.
@@ -4402,7 +4402,7 @@ BackendInitialize(Port *port)
44024402
* Disable the timeout, and prevent SIGTERM again.
44034403
*/
44044404
disable_timeout(STARTUP_PACKET_TIMEOUT, false);
4405-
PG_SETMASK(&BlockSig);
4405+
sigprocmask(SIG_SETMASK, &BlockSig, NULL);
44064406

44074407
/*
44084408
* As a safety check that nothing in startup has yet performed
@@ -5661,13 +5661,13 @@ BackgroundWorkerInitializeConnectionByOid(Oid dboid, Oid useroid, uint32 flags)
56615661
void
56625662
BackgroundWorkerBlockSignals(void)
56635663
{
5664-
PG_SETMASK(&BlockSig);
5664+
sigprocmask(SIG_SETMASK, &BlockSig, NULL);
56655665
}
56665666

56675667
void
56685668
BackgroundWorkerUnblockSignals(void)
56695669
{
5670-
PG_SETMASK(&UnBlockSig);
5670+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
56715671
}
56725672

56735673
#ifdef EXEC_BACKEND

src/backend/postmaster/startup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ StartupProcessMain(void)
259259
/*
260260
* Unblock signals (they were blocked when the postmaster forked us)
261261
*/
262-
PG_SETMASK(&UnBlockSig);
262+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
263263

264264
/*
265265
* Do what we came for.

src/backend/postmaster/syslogger.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ SysLoggerMain(int argc, char *argv[])
263263
*/
264264
pqsignal(SIGCHLD, SIG_DFL);
265265

266-
PG_SETMASK(&UnBlockSig);
266+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
267267

268268
#ifdef WIN32
269269
/* Fire up separate data transfer thread */

src/backend/postmaster/walwriter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ WalWriterMain(void)
205205
/*
206206
* Unblock signals (they were blocked when the postmaster forked us)
207207
*/
208-
PG_SETMASK(&UnBlockSig);
208+
sigprocmask(SIG_SETMASK, &UnBlockSig, NULL);
209209

210210
/*
211211
* Reset hibernation state after any error.

0 commit comments

Comments
 (0)