diff options
author | Andres Freund <andres@anarazel.de> | 2021-08-05 12:36:06 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2021-08-05 12:36:06 -0700 |
commit | 07bf37850991c68a7038fb06186bddfd64c72faf (patch) | |
tree | c929af8139ca608e480249f3e767004d401f54db /src/backend/utils/init/miscinit.c | |
parent | f8dd4ecb0b7fc3420e199021375e622815cd326f (diff) | |
download | postgresql-07bf37850991c68a7038fb06186bddfd64c72faf.tar.gz postgresql-07bf37850991c68a7038fb06186bddfd64c72faf.zip |
process startup: Centralize pgwin32_signal_initialize() calls.
For one, the existing location lead to somewhat awkward code in main(). For
another, the new location is easier to understand anyway.
Author: Andres Freund <andres@anarazel.de>
Reviewed-By: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Reviewed-By: Robert Haas <robertmhaas@gmail.com>
Discussion: https://postgr.es/m/20210802164124.ufo5buo4apl6yuvs@alap3.anarazel.de
Diffstat (limited to 'src/backend/utils/init/miscinit.c')
-rw-r--r-- | src/backend/utils/init/miscinit.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 8b73850d0df..88801374b57 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -87,7 +87,8 @@ bool IgnoreSystemIndexes = false; /* * Initialize the basic environment for a postmaster child * - * Should be called as early as possible after the child's startup. + * Should be called as early as possible after the child's startup. However, + * on EXEC_BACKEND builds it does need to be after read_backend_variables(). */ void InitPostmasterChild(void) @@ -95,6 +96,15 @@ InitPostmasterChild(void) IsUnderPostmaster = true; /* we are a postmaster subprocess now */ /* + * Start our win32 signal implementation. This has to be done after we + * read the backend variables, because we need to pick up the signal pipe + * from the parent process. + */ +#ifdef WIN32 + pgwin32_signal_initialize(); +#endif + + /* * Set reference point for stack-depth checking. We re-do that even in the * !EXEC_BACKEND case, because there are some edge cases where processes * are started with an alternative stack (e.g. starting bgworkers when @@ -166,6 +176,13 @@ InitStandaloneProcess(const char *argv0) { Assert(!IsPostmasterEnvironment); + /* + * Start our win32 signal implementation + */ +#ifdef WIN32 + pgwin32_signal_initialize(); +#endif + InitProcessGlobals(); /* Initialize process-local latch support */ |