diff options
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 */ |