PROC_HDR *ProcGlobal;
PGPROC *AuxiliaryProcs;
PGPROC *PreparedXactProcs;
- PMSignalData *PMSignalState;
+ volatile PMSignalData *PMSignalState;
pid_t PostmasterPid;
TimestampTz PgStartTime;
TimestampTz PgReloadTime;
pg_unreachable(); /* main_fn never returns */
}
-/*
- * The following need to be available to the save/restore_backend_variables
- * functions. They are marked NON_EXEC_STATIC in their home modules.
- */
-extern slock_t *ProcStructLock;
-extern PGPROC *AuxiliaryProcs;
-extern PMSignalData *PMSignalState;
-extern pg_time_t first_syslogger_file_time;
-extern struct bkend *ShmemBackendArray;
-
#ifndef WIN32
#define write_inheritable_socket(dest, src, childpid) ((*(dest) = (src)), true)
#define read_inheritable_socket(dest, src) (*(dest) = *(src))
extern PGDLLIMPORT bool send_abort_for_crash;
extern PGDLLIMPORT bool send_abort_for_kill;
+#ifdef EXEC_BACKEND
+extern struct bkend *ShmemBackendArray;
+#endif
+
#ifdef WIN32
extern PGDLLIMPORT HANDLE PostmasterHandle;
#else
extern PGDLLIMPORT bool Log_truncate_on_rotation;
extern PGDLLIMPORT int Log_file_mode;
+#ifdef EXEC_BACKEND
+extern pg_time_t first_syslogger_file_time;
+#endif
+
#ifndef WIN32
extern PGDLLIMPORT int syslogPipe[2];
#else
/* PMSignalData is an opaque struct, details known only within pmsignal.c */
typedef struct PMSignalData PMSignalData;
+#ifdef EXEC_BACKEND
+extern volatile PMSignalData *PMSignalState;
+#endif
+
/*
* prototypes for functions in pmsignal.c
*/
extern PGDLLIMPORT int IdleSessionTimeout;
extern PGDLLIMPORT bool log_lock_waits;
+#ifdef EXEC_BACKEND
+extern slock_t *ProcStructLock;
+extern PGPROC *AuxiliaryProcs;
+#endif
+
/*
* Function Prototypes