mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
backend launchers void * arguments for binary data
Change backend launcher functions to take void * for binary data instead of char *. This removes the need for numerous casts. Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> Discussion: https://www.postgresql.org/message-id/flat/fd1fcedb-3492-4fc8-9e3e-74b97f2db6c7%40eisentraut.org
This commit is contained in:
@ -364,7 +364,7 @@ static void check_av_worker_gucs(void);
|
|||||||
* Main entry point for the autovacuum launcher process.
|
* Main entry point for the autovacuum launcher process.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
AutoVacLauncherMain(char *startup_data, size_t startup_data_len)
|
AutoVacLauncherMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
sigjmp_buf local_sigjmp_buf;
|
sigjmp_buf local_sigjmp_buf;
|
||||||
|
|
||||||
@ -1371,7 +1371,7 @@ avl_sigusr2_handler(SIGNAL_ARGS)
|
|||||||
* Main entry point for autovacuum worker processes.
|
* Main entry point for autovacuum worker processes.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
AutoVacWorkerMain(char *startup_data, size_t startup_data_len)
|
AutoVacWorkerMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
sigjmp_buf local_sigjmp_buf;
|
sigjmp_buf local_sigjmp_buf;
|
||||||
Oid dbid;
|
Oid dbid;
|
||||||
|
@ -714,7 +714,7 @@ bgworker_die(SIGNAL_ARGS)
|
|||||||
* Main entry point for background worker processes.
|
* Main entry point for background worker processes.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
BackgroundWorkerMain(char *startup_data, size_t startup_data_len)
|
BackgroundWorkerMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
sigjmp_buf local_sigjmp_buf;
|
sigjmp_buf local_sigjmp_buf;
|
||||||
BackgroundWorker *worker;
|
BackgroundWorker *worker;
|
||||||
|
@ -84,7 +84,7 @@ static XLogRecPtr last_snapshot_lsn = InvalidXLogRecPtr;
|
|||||||
* basic execution environment, but not enabled signals yet.
|
* basic execution environment, but not enabled signals yet.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
BackgroundWriterMain(char *startup_data, size_t startup_data_len)
|
BackgroundWriterMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
sigjmp_buf local_sigjmp_buf;
|
sigjmp_buf local_sigjmp_buf;
|
||||||
MemoryContext bgwriter_context;
|
MemoryContext bgwriter_context;
|
||||||
|
@ -175,7 +175,7 @@ static void ReqShutdownXLOG(SIGNAL_ARGS);
|
|||||||
* basic execution environment, but not enabled signals yet.
|
* basic execution environment, but not enabled signals yet.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
CheckpointerMain(char *startup_data, size_t startup_data_len)
|
CheckpointerMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
sigjmp_buf local_sigjmp_buf;
|
sigjmp_buf local_sigjmp_buf;
|
||||||
MemoryContext checkpointer_context;
|
MemoryContext checkpointer_context;
|
||||||
|
@ -149,7 +149,7 @@ typedef struct
|
|||||||
|
|
||||||
#define SizeOfBackendParameters(startup_data_len) (offsetof(BackendParameters, startup_data) + startup_data_len)
|
#define SizeOfBackendParameters(startup_data_len) (offsetof(BackendParameters, startup_data) + startup_data_len)
|
||||||
|
|
||||||
static void read_backend_variables(char *id, char **startup_data, size_t *startup_data_len);
|
static void read_backend_variables(char *id, void **startup_data, size_t *startup_data_len);
|
||||||
static void restore_backend_variables(BackendParameters *param);
|
static void restore_backend_variables(BackendParameters *param);
|
||||||
|
|
||||||
static bool save_backend_variables(BackendParameters *param, int child_slot,
|
static bool save_backend_variables(BackendParameters *param, int child_slot,
|
||||||
@ -157,10 +157,10 @@ static bool save_backend_variables(BackendParameters *param, int child_slot,
|
|||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
HANDLE childProcess, pid_t childPid,
|
HANDLE childProcess, pid_t childPid,
|
||||||
#endif
|
#endif
|
||||||
char *startup_data, size_t startup_data_len);
|
const void *startup_data, size_t startup_data_len);
|
||||||
|
|
||||||
static pid_t internal_forkexec(const char *child_kind, int child_slot,
|
static pid_t internal_forkexec(const char *child_kind, int child_slot,
|
||||||
char *startup_data, size_t startup_data_len,
|
const void *startup_data, size_t startup_data_len,
|
||||||
ClientSocket *client_sock);
|
ClientSocket *client_sock);
|
||||||
|
|
||||||
#endif /* EXEC_BACKEND */
|
#endif /* EXEC_BACKEND */
|
||||||
@ -171,7 +171,7 @@ static pid_t internal_forkexec(const char *child_kind, int child_slot,
|
|||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
void (*main_fn) (char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
void (*main_fn) (const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
bool shmem_attach;
|
bool shmem_attach;
|
||||||
} child_process_kind;
|
} child_process_kind;
|
||||||
|
|
||||||
@ -225,7 +225,7 @@ PostmasterChildName(BackendType child_type)
|
|||||||
*/
|
*/
|
||||||
pid_t
|
pid_t
|
||||||
postmaster_child_launch(BackendType child_type, int child_slot,
|
postmaster_child_launch(BackendType child_type, int child_slot,
|
||||||
char *startup_data, size_t startup_data_len,
|
const void *startup_data, size_t startup_data_len,
|
||||||
ClientSocket *client_sock)
|
ClientSocket *client_sock)
|
||||||
{
|
{
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
@ -289,7 +289,7 @@ postmaster_child_launch(BackendType child_type, int child_slot,
|
|||||||
*/
|
*/
|
||||||
static pid_t
|
static pid_t
|
||||||
internal_forkexec(const char *child_kind, int child_slot,
|
internal_forkexec(const char *child_kind, int child_slot,
|
||||||
char *startup_data, size_t startup_data_len, ClientSocket *client_sock)
|
const void *startup_data, size_t startup_data_len, ClientSocket *client_sock)
|
||||||
{
|
{
|
||||||
static unsigned long tmpBackendFileNum = 0;
|
static unsigned long tmpBackendFileNum = 0;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
@ -399,7 +399,7 @@ internal_forkexec(const char *child_kind, int child_slot,
|
|||||||
*/
|
*/
|
||||||
static pid_t
|
static pid_t
|
||||||
internal_forkexec(const char *child_kind, int child_slot,
|
internal_forkexec(const char *child_kind, int child_slot,
|
||||||
char *startup_data, size_t startup_data_len, ClientSocket *client_sock)
|
const void *startup_data, size_t startup_data_len, ClientSocket *client_sock)
|
||||||
{
|
{
|
||||||
int retry_count = 0;
|
int retry_count = 0;
|
||||||
STARTUPINFO si;
|
STARTUPINFO si;
|
||||||
@ -581,7 +581,7 @@ retry:
|
|||||||
void
|
void
|
||||||
SubPostmasterMain(int argc, char *argv[])
|
SubPostmasterMain(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *startup_data;
|
void *startup_data;
|
||||||
size_t startup_data_len;
|
size_t startup_data_len;
|
||||||
char *child_kind;
|
char *child_kind;
|
||||||
BackendType child_type;
|
BackendType child_type;
|
||||||
@ -699,7 +699,7 @@ save_backend_variables(BackendParameters *param,
|
|||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
HANDLE childProcess, pid_t childPid,
|
HANDLE childProcess, pid_t childPid,
|
||||||
#endif
|
#endif
|
||||||
char *startup_data, size_t startup_data_len)
|
const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
if (client_sock)
|
if (client_sock)
|
||||||
memcpy(¶m->client_sock, client_sock, sizeof(ClientSocket));
|
memcpy(¶m->client_sock, client_sock, sizeof(ClientSocket));
|
||||||
@ -867,7 +867,7 @@ read_inheritable_socket(SOCKET *dest, InheritableSocket *src)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
read_backend_variables(char *id, char **startup_data, size_t *startup_data_len)
|
read_backend_variables(char *id, void **startup_data, size_t *startup_data_len)
|
||||||
{
|
{
|
||||||
BackendParameters param;
|
BackendParameters param;
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ PgArchCanRestart(void)
|
|||||||
|
|
||||||
/* Main entry point for archiver process */
|
/* Main entry point for archiver process */
|
||||||
void
|
void
|
||||||
PgArchiverMain(char *startup_data, size_t startup_data_len)
|
PgArchiverMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
Assert(startup_data_len == 0);
|
Assert(startup_data_len == 0);
|
||||||
|
|
||||||
|
@ -3517,7 +3517,7 @@ BackendStartup(ClientSocket *client_sock)
|
|||||||
bn->bgworker_notify = false;
|
bn->bgworker_notify = false;
|
||||||
|
|
||||||
pid = postmaster_child_launch(bn->bkend_type, bn->child_slot,
|
pid = postmaster_child_launch(bn->bkend_type, bn->child_slot,
|
||||||
(char *) &startup_data, sizeof(startup_data),
|
&startup_data, sizeof(startup_data),
|
||||||
client_sock);
|
client_sock);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
{
|
{
|
||||||
@ -4080,7 +4080,7 @@ StartBackgroundWorker(RegisteredBgWorker *rw)
|
|||||||
rw->rw_worker.bgw_name)));
|
rw->rw_worker.bgw_name)));
|
||||||
|
|
||||||
worker_pid = postmaster_child_launch(B_BG_WORKER, bn->child_slot,
|
worker_pid = postmaster_child_launch(B_BG_WORKER, bn->child_slot,
|
||||||
(char *) &rw->rw_worker, sizeof(BackgroundWorker), NULL);
|
&rw->rw_worker, sizeof(BackgroundWorker), NULL);
|
||||||
if (worker_pid == -1)
|
if (worker_pid == -1)
|
||||||
{
|
{
|
||||||
/* in postmaster, fork failed ... */
|
/* in postmaster, fork failed ... */
|
||||||
|
@ -213,7 +213,7 @@ StartupProcExit(int code, Datum arg)
|
|||||||
* ----------------------------------
|
* ----------------------------------
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
StartupProcessMain(char *startup_data, size_t startup_data_len)
|
StartupProcessMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
Assert(startup_data_len == 0);
|
Assert(startup_data_len == 0);
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ typedef struct
|
|||||||
* argc/argv parameters are valid only in EXEC_BACKEND case.
|
* argc/argv parameters are valid only in EXEC_BACKEND case.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
SysLoggerMain(char *startup_data, size_t startup_data_len)
|
SysLoggerMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
char logbuffer[READ_BUF_SIZE];
|
char logbuffer[READ_BUF_SIZE];
|
||||||
@ -183,7 +183,7 @@ SysLoggerMain(char *startup_data, size_t startup_data_len)
|
|||||||
*/
|
*/
|
||||||
#ifdef EXEC_BACKEND
|
#ifdef EXEC_BACKEND
|
||||||
{
|
{
|
||||||
SysloggerStartupData *slsdata = (SysloggerStartupData *) startup_data;
|
const SysloggerStartupData *slsdata = startup_data;
|
||||||
|
|
||||||
Assert(startup_data_len == sizeof(*slsdata));
|
Assert(startup_data_len == sizeof(*slsdata));
|
||||||
syslogFile = syslogger_fdopen(slsdata->syslogFile);
|
syslogFile = syslogger_fdopen(slsdata->syslogFile);
|
||||||
@ -699,7 +699,7 @@ SysLogger_Start(int child_slot)
|
|||||||
startup_data.csvlogFile = syslogger_fdget(csvlogFile);
|
startup_data.csvlogFile = syslogger_fdget(csvlogFile);
|
||||||
startup_data.jsonlogFile = syslogger_fdget(jsonlogFile);
|
startup_data.jsonlogFile = syslogger_fdget(jsonlogFile);
|
||||||
sysloggerPid = postmaster_child_launch(B_LOGGER, child_slot,
|
sysloggerPid = postmaster_child_launch(B_LOGGER, child_slot,
|
||||||
(char *) &startup_data, sizeof(startup_data), NULL);
|
&startup_data, sizeof(startup_data), NULL);
|
||||||
#else
|
#else
|
||||||
sysloggerPid = postmaster_child_launch(B_LOGGER, child_slot,
|
sysloggerPid = postmaster_child_launch(B_LOGGER, child_slot,
|
||||||
NULL, 0, NULL);
|
NULL, 0, NULL);
|
||||||
|
@ -208,7 +208,7 @@ WalSummarizerShmemInit(void)
|
|||||||
* Entry point for walsummarizer process.
|
* Entry point for walsummarizer process.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
WalSummarizerMain(char *startup_data, size_t startup_data_len)
|
WalSummarizerMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
sigjmp_buf local_sigjmp_buf;
|
sigjmp_buf local_sigjmp_buf;
|
||||||
MemoryContext context;
|
MemoryContext context;
|
||||||
|
@ -84,7 +84,7 @@ int WalWriterFlushAfter = DEFAULT_WAL_WRITER_FLUSH_AFTER;
|
|||||||
* basic execution environment, but not enabled signals yet.
|
* basic execution environment, but not enabled signals yet.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
WalWriterMain(char *startup_data, size_t startup_data_len)
|
WalWriterMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
sigjmp_buf local_sigjmp_buf;
|
sigjmp_buf local_sigjmp_buf;
|
||||||
MemoryContext walwriter_context;
|
MemoryContext walwriter_context;
|
||||||
|
@ -1326,7 +1326,7 @@ reset_syncing_flag()
|
|||||||
* information periodically in order to create and sync the slots.
|
* information periodically in order to create and sync the slots.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
ReplSlotSyncWorkerMain(char *startup_data, size_t startup_data_len)
|
ReplSlotSyncWorkerMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
WalReceiverConn *wrconn = NULL;
|
WalReceiverConn *wrconn = NULL;
|
||||||
char *dbname;
|
char *dbname;
|
||||||
|
@ -180,7 +180,7 @@ ProcessWalRcvInterrupts(void)
|
|||||||
|
|
||||||
/* Main entry point for walreceiver process */
|
/* Main entry point for walreceiver process */
|
||||||
void
|
void
|
||||||
WalReceiverMain(char *startup_data, size_t startup_data_len)
|
WalReceiverMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
char conninfo[MAXCONNINFO];
|
char conninfo[MAXCONNINFO];
|
||||||
char *tmp_conninfo;
|
char *tmp_conninfo;
|
||||||
|
@ -56,9 +56,9 @@ static void StartupPacketTimeoutHandler(void);
|
|||||||
* client, and start the main processing loop.
|
* client, and start the main processing loop.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
BackendMain(char *startup_data, size_t startup_data_len)
|
BackendMain(const void *startup_data, size_t startup_data_len)
|
||||||
{
|
{
|
||||||
BackendStartupData *bsdata = (BackendStartupData *) startup_data;
|
const BackendStartupData *bsdata = startup_data;
|
||||||
|
|
||||||
Assert(startup_data_len == sizeof(BackendStartupData));
|
Assert(startup_data_len == sizeof(BackendStartupData));
|
||||||
Assert(MyClientSocket != NULL);
|
Assert(MyClientSocket != NULL);
|
||||||
|
@ -58,8 +58,8 @@ extern void autovac_init(void);
|
|||||||
/* called from postmaster when a worker could not be forked */
|
/* called from postmaster when a worker could not be forked */
|
||||||
extern void AutoVacWorkerFailed(void);
|
extern void AutoVacWorkerFailed(void);
|
||||||
|
|
||||||
extern void AutoVacLauncherMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void AutoVacLauncherMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
extern void AutoVacWorkerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void AutoVacWorkerMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
extern bool AutoVacuumRequestWork(AutoVacuumWorkItemType type,
|
extern bool AutoVacuumRequestWork(AutoVacuumWorkItemType type,
|
||||||
Oid relationId, BlockNumber blkno);
|
Oid relationId, BlockNumber blkno);
|
||||||
|
@ -52,6 +52,6 @@ extern void ForgetUnstartedBackgroundWorkers(void);
|
|||||||
extern void ResetBackgroundWorkerCrashTimes(void);
|
extern void ResetBackgroundWorkerCrashTimes(void);
|
||||||
|
|
||||||
/* Entry point for background worker processes */
|
/* Entry point for background worker processes */
|
||||||
extern void BackgroundWorkerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void BackgroundWorkerMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
#endif /* BGWORKER_INTERNALS_H */
|
#endif /* BGWORKER_INTERNALS_H */
|
||||||
|
@ -27,8 +27,8 @@ extern PGDLLIMPORT int CheckPointTimeout;
|
|||||||
extern PGDLLIMPORT int CheckPointWarning;
|
extern PGDLLIMPORT int CheckPointWarning;
|
||||||
extern PGDLLIMPORT double CheckPointCompletionTarget;
|
extern PGDLLIMPORT double CheckPointCompletionTarget;
|
||||||
|
|
||||||
extern void BackgroundWriterMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void BackgroundWriterMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
extern void CheckpointerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void CheckpointerMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
extern void RequestCheckpoint(int flags);
|
extern void RequestCheckpoint(int flags);
|
||||||
extern void CheckpointWriteDelay(int flags, double progress);
|
extern void CheckpointWriteDelay(int flags, double progress);
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
extern Size PgArchShmemSize(void);
|
extern Size PgArchShmemSize(void);
|
||||||
extern void PgArchShmemInit(void);
|
extern void PgArchShmemInit(void);
|
||||||
extern bool PgArchCanRestart(void);
|
extern bool PgArchCanRestart(void);
|
||||||
extern void PgArchiverMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void PgArchiverMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
extern void PgArchWakeup(void);
|
extern void PgArchWakeup(void);
|
||||||
extern void PgArchForceDirScan(void);
|
extern void PgArchForceDirScan(void);
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ extern PGDLLIMPORT struct ClientSocket *MyClientSocket;
|
|||||||
/* prototypes for functions in launch_backend.c */
|
/* prototypes for functions in launch_backend.c */
|
||||||
extern pid_t postmaster_child_launch(BackendType child_type,
|
extern pid_t postmaster_child_launch(BackendType child_type,
|
||||||
int child_slot,
|
int child_slot,
|
||||||
char *startup_data,
|
const void *startup_data,
|
||||||
size_t startup_data_len,
|
size_t startup_data_len,
|
||||||
struct ClientSocket *client_sock);
|
struct ClientSocket *client_sock);
|
||||||
const char *PostmasterChildName(BackendType child_type);
|
const char *PostmasterChildName(BackendType child_type);
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
extern PGDLLIMPORT int log_startup_progress_interval;
|
extern PGDLLIMPORT int log_startup_progress_interval;
|
||||||
|
|
||||||
extern void HandleStartupProcInterrupts(void);
|
extern void HandleStartupProcInterrupts(void);
|
||||||
extern void StartupProcessMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void StartupProcessMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
extern void PreRestoreCommand(void);
|
extern void PreRestoreCommand(void);
|
||||||
extern void PostRestoreCommand(void);
|
extern void PostRestoreCommand(void);
|
||||||
extern bool IsPromoteSignaled(void);
|
extern bool IsPromoteSignaled(void);
|
||||||
|
@ -90,7 +90,7 @@ extern int SysLogger_Start(int child_slot);
|
|||||||
|
|
||||||
extern void write_syslogger_file(const char *buffer, int count, int destination);
|
extern void write_syslogger_file(const char *buffer, int count, int destination);
|
||||||
|
|
||||||
extern void SysLoggerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void SysLoggerMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
extern bool CheckLogrotateSignal(void);
|
extern bool CheckLogrotateSignal(void);
|
||||||
extern void RemoveLogrotateSignalFiles(void);
|
extern void RemoveLogrotateSignalFiles(void);
|
||||||
|
@ -21,7 +21,7 @@ extern PGDLLIMPORT int wal_summary_keep_time;
|
|||||||
|
|
||||||
extern Size WalSummarizerShmemSize(void);
|
extern Size WalSummarizerShmemSize(void);
|
||||||
extern void WalSummarizerShmemInit(void);
|
extern void WalSummarizerShmemInit(void);
|
||||||
extern void WalSummarizerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void WalSummarizerMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
extern void GetWalSummarizerState(TimeLineID *summarized_tli,
|
extern void GetWalSummarizerState(TimeLineID *summarized_tli,
|
||||||
XLogRecPtr *summarized_lsn,
|
XLogRecPtr *summarized_lsn,
|
||||||
|
@ -18,6 +18,6 @@
|
|||||||
extern PGDLLIMPORT int WalWriterDelay;
|
extern PGDLLIMPORT int WalWriterDelay;
|
||||||
extern PGDLLIMPORT int WalWriterFlushAfter;
|
extern PGDLLIMPORT int WalWriterFlushAfter;
|
||||||
|
|
||||||
extern void WalWriterMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void WalWriterMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
#endif /* _WALWRITER_H */
|
#endif /* _WALWRITER_H */
|
||||||
|
@ -26,7 +26,7 @@ extern PGDLLIMPORT char *PrimarySlotName;
|
|||||||
extern char *CheckAndGetDbnameFromConninfo(void);
|
extern char *CheckAndGetDbnameFromConninfo(void);
|
||||||
extern bool ValidateSlotSyncParams(int elevel);
|
extern bool ValidateSlotSyncParams(int elevel);
|
||||||
|
|
||||||
extern void ReplSlotSyncWorkerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void ReplSlotSyncWorkerMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
extern void ShutDownSlotSync(void);
|
extern void ShutDownSlotSync(void);
|
||||||
extern bool SlotSyncWorkerCanRestart(void);
|
extern bool SlotSyncWorkerCanRestart(void);
|
||||||
|
@ -486,7 +486,7 @@ walrcv_clear_result(WalRcvExecResult *walres)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* prototypes for functions in walreceiver.c */
|
/* prototypes for functions in walreceiver.c */
|
||||||
extern void WalReceiverMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void WalReceiverMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
extern void ProcessWalRcvInterrupts(void);
|
extern void ProcessWalRcvInterrupts(void);
|
||||||
extern void WalRcvForceReply(void);
|
extern void WalRcvForceReply(void);
|
||||||
|
|
||||||
|
@ -39,6 +39,6 @@ typedef struct BackendStartupData
|
|||||||
CAC_state canAcceptConnections;
|
CAC_state canAcceptConnections;
|
||||||
} BackendStartupData;
|
} BackendStartupData;
|
||||||
|
|
||||||
extern void BackendMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
extern void BackendMain(const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
||||||
|
|
||||||
#endif /* BACKEND_STARTUP_H */
|
#endif /* BACKEND_STARTUP_H */
|
||||||
|
Reference in New Issue
Block a user