PG_SETMASK() archeology
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-01-13T01:00:05Z
Lists: pgsql-hackers
Attachments
- 0001-Retire-PG_SETMASK-macro.patch (text/x-patch) patch 0001
Hi, This is a follow-up for commit c94ae9d8. It's in the spirit of other recent changes to remove noise from ancient pre-standard systems. The reason we introduced PG_SETMASK() in the first place was to support one particular system that was very slow to adopt the POSIX signals stuff: NeXTSTEP 3.x. From some time in the dark age before our current repo begins until '97 we used sigprocmask() freely. Then commit a5494a2d added a sigsetmask() fallback for NeXTSTEP (that's a pre-standard function inherited from '80s BSD). In 1999 we added the PG_SETMASK() macro to avoid repeating #ifdef HAVE_SIGPROCMASK to select between them at each call site (commit 47937403676). I have no personal knowledge of those systems; I wonder if it was already effectively quite defunct while we were adding the macro, but I dunno (NS 4.x never shipped?, but its living descendent OSX had already shipped that year). Then we invented a bogus reason to need the macro for a couple more decades: our Windows simulated signal layer accidentally implemented the old BSD interface instead of the standard one, as complained about in commit a65e0864. That's all ancient history now, and I think we might as well drop the macro to make our source a tiny bit less weird for new players, with a slightly richer interface. Trivial patch attached.
Commits
-
Retire PG_SETMASK() macro.
- cdf6518ef08e 16.0 landed
-
Emulate sigprocmask(), not sigsetmask(), on Windows.
- c94ae9d827a3 16.0 cited
-
Remove support for Unix systems without the POSIX signal APIs.
- a65e086453e0 9.6.0 cited
-
XLOG (also known as WAL -:)) Bootstrap/Startup/Shutdown.
- 47937403676d 7.1.1 cited
-
Various patches for nextstep by GregorHoffleit
- a5494a2d92a2 7.1.1 cited