Skip to content

Commit 7202d72

Browse files
committed
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
1 parent b50a554 commit 7202d72

26 files changed

+42
-42
lines changed

src/backend/postmaster/autovacuum.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ static void check_av_worker_gucs(void);
364364
* Main entry point for the autovacuum launcher process.
365365
*/
366366
void
367-
AutoVacLauncherMain(char *startup_data, size_t startup_data_len)
367+
AutoVacLauncherMain(const void *startup_data, size_t startup_data_len)
368368
{
369369
sigjmp_buf local_sigjmp_buf;
370370

@@ -1371,7 +1371,7 @@ avl_sigusr2_handler(SIGNAL_ARGS)
13711371
* Main entry point for autovacuum worker processes.
13721372
*/
13731373
void
1374-
AutoVacWorkerMain(char *startup_data, size_t startup_data_len)
1374+
AutoVacWorkerMain(const void *startup_data, size_t startup_data_len)
13751375
{
13761376
sigjmp_buf local_sigjmp_buf;
13771377
Oid dbid;

src/backend/postmaster/bgworker.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ bgworker_die(SIGNAL_ARGS)
714714
* Main entry point for background worker processes.
715715
*/
716716
void
717-
BackgroundWorkerMain(char *startup_data, size_t startup_data_len)
717+
BackgroundWorkerMain(const void *startup_data, size_t startup_data_len)
718718
{
719719
sigjmp_buf local_sigjmp_buf;
720720
BackgroundWorker *worker;

src/backend/postmaster/bgwriter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ static XLogRecPtr last_snapshot_lsn = InvalidXLogRecPtr;
8484
* basic execution environment, but not enabled signals yet.
8585
*/
8686
void
87-
BackgroundWriterMain(char *startup_data, size_t startup_data_len)
87+
BackgroundWriterMain(const void *startup_data, size_t startup_data_len)
8888
{
8989
sigjmp_buf local_sigjmp_buf;
9090
MemoryContext bgwriter_context;

src/backend/postmaster/checkpointer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ static void ReqShutdownXLOG(SIGNAL_ARGS);
175175
* basic execution environment, but not enabled signals yet.
176176
*/
177177
void
178-
CheckpointerMain(char *startup_data, size_t startup_data_len)
178+
CheckpointerMain(const void *startup_data, size_t startup_data_len)
179179
{
180180
sigjmp_buf local_sigjmp_buf;
181181
MemoryContext checkpointer_context;

src/backend/postmaster/launch_backend.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -149,18 +149,18 @@ typedef struct
149149

150150
#define SizeOfBackendParameters(startup_data_len) (offsetof(BackendParameters, startup_data) + startup_data_len)
151151

152-
static void read_backend_variables(char *id, char **startup_data, size_t *startup_data_len);
152+
static void read_backend_variables(char *id, void **startup_data, size_t *startup_data_len);
153153
static void restore_backend_variables(BackendParameters *param);
154154

155155
static bool save_backend_variables(BackendParameters *param, int child_slot,
156156
ClientSocket *client_sock,
157157
#ifdef WIN32
158158
HANDLE childProcess, pid_t childPid,
159159
#endif
160-
char *startup_data, size_t startup_data_len);
160+
const void *startup_data, size_t startup_data_len);
161161

162162
static pid_t internal_forkexec(const char *child_kind, int child_slot,
163-
char *startup_data, size_t startup_data_len,
163+
const void *startup_data, size_t startup_data_len,
164164
ClientSocket *client_sock);
165165

166166
#endif /* EXEC_BACKEND */
@@ -171,7 +171,7 @@ static pid_t internal_forkexec(const char *child_kind, int child_slot,
171171
typedef struct
172172
{
173173
const char *name;
174-
void (*main_fn) (char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
174+
void (*main_fn) (const void *startup_data, size_t startup_data_len) pg_attribute_noreturn();
175175
bool shmem_attach;
176176
} child_process_kind;
177177

@@ -225,7 +225,7 @@ PostmasterChildName(BackendType child_type)
225225
*/
226226
pid_t
227227
postmaster_child_launch(BackendType child_type, int child_slot,
228-
char *startup_data, size_t startup_data_len,
228+
const void *startup_data, size_t startup_data_len,
229229
ClientSocket *client_sock)
230230
{
231231
pid_t pid;
@@ -289,7 +289,7 @@ postmaster_child_launch(BackendType child_type, int child_slot,
289289
*/
290290
static pid_t
291291
internal_forkexec(const char *child_kind, int child_slot,
292-
char *startup_data, size_t startup_data_len, ClientSocket *client_sock)
292+
const void *startup_data, size_t startup_data_len, ClientSocket *client_sock)
293293
{
294294
static unsigned long tmpBackendFileNum = 0;
295295
pid_t pid;
@@ -399,7 +399,7 @@ internal_forkexec(const char *child_kind, int child_slot,
399399
*/
400400
static pid_t
401401
internal_forkexec(const char *child_kind, int child_slot,
402-
char *startup_data, size_t startup_data_len, ClientSocket *client_sock)
402+
const void *startup_data, size_t startup_data_len, ClientSocket *client_sock)
403403
{
404404
int retry_count = 0;
405405
STARTUPINFO si;
@@ -581,7 +581,7 @@ internal_forkexec(const char *child_kind, int child_slot,
581581
void
582582
SubPostmasterMain(int argc, char *argv[])
583583
{
584-
char *startup_data;
584+
void *startup_data;
585585
size_t startup_data_len;
586586
char *child_kind;
587587
BackendType child_type;
@@ -699,7 +699,7 @@ save_backend_variables(BackendParameters *param,
699699
#ifdef WIN32
700700
HANDLE childProcess, pid_t childPid,
701701
#endif
702-
char *startup_data, size_t startup_data_len)
702+
const void *startup_data, size_t startup_data_len)
703703
{
704704
if (client_sock)
705705
memcpy(&param->client_sock, client_sock, sizeof(ClientSocket));
@@ -867,7 +867,7 @@ read_inheritable_socket(SOCKET *dest, InheritableSocket *src)
867867
#endif
868868

869869
static void
870-
read_backend_variables(char *id, char **startup_data, size_t *startup_data_len)
870+
read_backend_variables(char *id, void **startup_data, size_t *startup_data_len)
871871
{
872872
BackendParameters param;
873873

src/backend/postmaster/pgarch.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ PgArchCanRestart(void)
214214

215215
/* Main entry point for archiver process */
216216
void
217-
PgArchiverMain(char *startup_data, size_t startup_data_len)
217+
PgArchiverMain(const void *startup_data, size_t startup_data_len)
218218
{
219219
Assert(startup_data_len == 0);
220220

src/backend/postmaster/postmaster.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3517,7 +3517,7 @@ BackendStartup(ClientSocket *client_sock)
35173517
bn->bgworker_notify = false;
35183518

35193519
pid = postmaster_child_launch(bn->bkend_type, bn->child_slot,
3520-
(char *) &startup_data, sizeof(startup_data),
3520+
&startup_data, sizeof(startup_data),
35213521
client_sock);
35223522
if (pid < 0)
35233523
{
@@ -4080,7 +4080,7 @@ StartBackgroundWorker(RegisteredBgWorker *rw)
40804080
rw->rw_worker.bgw_name)));
40814081

40824082
worker_pid = postmaster_child_launch(B_BG_WORKER, bn->child_slot,
4083-
(char *) &rw->rw_worker, sizeof(BackgroundWorker), NULL);
4083+
&rw->rw_worker, sizeof(BackgroundWorker), NULL);
40844084
if (worker_pid == -1)
40854085
{
40864086
/* in postmaster, fork failed ... */

src/backend/postmaster/startup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ StartupProcExit(int code, Datum arg)
213213
* ----------------------------------
214214
*/
215215
void
216-
StartupProcessMain(char *startup_data, size_t startup_data_len)
216+
StartupProcessMain(const void *startup_data, size_t startup_data_len)
217217
{
218218
Assert(startup_data_len == 0);
219219

src/backend/postmaster/syslogger.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ typedef struct
162162
* argc/argv parameters are valid only in EXEC_BACKEND case.
163163
*/
164164
void
165-
SysLoggerMain(char *startup_data, size_t startup_data_len)
165+
SysLoggerMain(const void *startup_data, size_t startup_data_len)
166166
{
167167
#ifndef WIN32
168168
char logbuffer[READ_BUF_SIZE];
@@ -183,7 +183,7 @@ SysLoggerMain(char *startup_data, size_t startup_data_len)
183183
*/
184184
#ifdef EXEC_BACKEND
185185
{
186-
SysloggerStartupData *slsdata = (SysloggerStartupData *) startup_data;
186+
const SysloggerStartupData *slsdata = startup_data;
187187

188188
Assert(startup_data_len == sizeof(*slsdata));
189189
syslogFile = syslogger_fdopen(slsdata->syslogFile);
@@ -699,7 +699,7 @@ SysLogger_Start(int child_slot)
699699
startup_data.csvlogFile = syslogger_fdget(csvlogFile);
700700
startup_data.jsonlogFile = syslogger_fdget(jsonlogFile);
701701
sysloggerPid = postmaster_child_launch(B_LOGGER, child_slot,
702-
(char *) &startup_data, sizeof(startup_data), NULL);
702+
&startup_data, sizeof(startup_data), NULL);
703703
#else
704704
sysloggerPid = postmaster_child_launch(B_LOGGER, child_slot,
705705
NULL, 0, NULL);

src/backend/postmaster/walsummarizer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ WalSummarizerShmemInit(void)
208208
* Entry point for walsummarizer process.
209209
*/
210210
void
211-
WalSummarizerMain(char *startup_data, size_t startup_data_len)
211+
WalSummarizerMain(const void *startup_data, size_t startup_data_len)
212212
{
213213
sigjmp_buf local_sigjmp_buf;
214214
MemoryContext context;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy