Skip to content

Commit 2caa611

Browse files
author
Vladimir Ershov
committed
stable on windows build
1 parent b2297d5 commit 2caa611

File tree

5 files changed

+17
-19
lines changed

5 files changed

+17
-19
lines changed

src/pgpro_scheduler.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "postgres.h"
2-
#include "port.h"
32

43
#include "miscadmin.h"
54
#include "postmaster/bgworker.h"
@@ -43,12 +42,12 @@ volatile sig_atomic_t got_sighup = false;
4342
volatile sig_atomic_t got_sigterm = false;
4443

4544
/* Custom GUC variables */
46-
static char *scheduler_databases = NULL;
47-
static char *scheduler_nodename = NULL;
48-
static char *scheduler_transaction_state = NULL;
49-
static int scheduler_max_workers = 2;
50-
static bool scheduler_service_enabled = false;
51-
static char *scheduler_schema = NULL;
45+
char *scheduler_databases = NULL;
46+
char *scheduler_nodename = NULL;
47+
char *scheduler_transaction_state = NULL;
48+
int scheduler_max_workers = 2;
49+
bool scheduler_service_enabled = false;
50+
char *scheduler_schema = NULL;
5251
/* Custom GUC done */
5352

5453
extern void
@@ -281,10 +280,11 @@ void parent_scheduler_main(Datum arg)
281280
schd_manager_share_t *shared;
282281
bool refresh = false;
283282

283+
CurrentResourceOwner = ResourceOwnerCreate(NULL, "pgpro_scheduler");
284+
284285
init_worker_mem_ctx("Parent scheduler context");
285286
elog(LOG, "Start PostgresPro scheduler.");
286287

287-
/*CurrentResourceOwner = ResourceOwnerCreate(NULL, "pgpro_scheduler");*/
288288
SetConfigOption("application_name", "pgp-s supervisor", PGC_USERSET, PGC_S_SESSION);
289289
pgstat_report_activity(STATE_RUNNING, "Initialize");
290290
pqsignal(SIGHUP, worker_spi_sighup);
@@ -388,13 +388,13 @@ pg_scheduler_startup(void)
388388
BGWORKER_BACKEND_DATABASE_CONNECTION;
389389
worker.bgw_start_time = BgWorkerStart_ConsistentState;
390390
worker.bgw_restart_time = BGW_NEVER_RESTART;
391-
worker.bgw_main = parent_scheduler_main;
391+
worker.bgw_main = NULL;
392392
worker.bgw_notify_pid = 0;
393-
worker.bgw_main_arg = 0;
394-
strcpy(worker.bgw_name, "pgpro scheduler");
395-
396-
/* elog(LOG, "Register WORKER"); */
397-
393+
worker.bgw_main_arg = Int32GetDatum(0);
394+
worker.bgw_extra[0] = 0;
395+
memcpy(worker.bgw_function_name, "parent_scheduler_main", 22);
396+
memcpy(worker.bgw_library_name, "pgpro_scheduler", 16);
397+
memcpy(worker.bgw_name, "pgpro scheduler", 16);
398398

399399
RegisterBackgroundWorker(&worker);
400400
}

src/pgpro_scheduler.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ void pg_scheduler_startup(void);
2929
char_array_t *readBasesToCheck(void);
3030
extern Datum cron_string_to_json_text(PG_FUNCTION_ARGS);
3131
void _PG_init(void);
32-
void parent_scheduler_main(Datum) pg_attribute_noreturn();
32+
extern PGDLLEXPORT void parent_scheduler_main(Datum) pg_attribute_noreturn();
3333
int checkSchedulerNamespace(void);
34-
void manager_worker_main(Datum arg);
3534
pid_t registerManagerWorker(schd_manager_t *man);
3635

3736
void reload_db_role_config(char *dbname);

src/scheduler_executor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ typedef struct {
3838
char **errors;
3939
} executor_error_t;
4040

41-
void executor_worker_main(Datum arg);
41+
extern PGDLLEXPORT void executor_worker_main(Datum arg);
4242
job_t *initializeExecutorJob(schd_executor_share_t *data);
4343
void set_shared_message(schd_executor_share_t *shared, executor_error_t *ee);
4444
TimestampTz get_next_excution_time(char *sql, executor_error_t *ee);

src/scheduler_job.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ typedef struct {
3232
job_t *init_scheduler_job(job_t *j);
3333
job_t *get_expired_jobs(char *nodename, int *n, int *is_error);
3434
job_t *get_jobs_to_do(char *nodename, int *n, int *is_error);
35-
/*job_t *set_job_error(job_t *j, const char *fmt, ...) __attribute__ ((format (gnu_printf, 2, 3)));;*/
3635
job_t *set_job_error(job_t *j, const char *fmt, ...) pg_attribute_printf(2, 3);
3736
int move_job_to_log(job_t *j, bool status);
3837
void destroy_job(job_t *j, int selfdestroy);

src/scheduler_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ typedef struct {
6464
} scheduler_manager_ctx_t;
6565

6666
int checkSchedulerNamespace(void);
67-
void manager_worker_main(Datum arg);
67+
extern PGDLLEXPORT void manager_worker_main(Datum arg);
6868
int get_scheduler_maxworkers(void);
6969
char *get_scheduler_nodename(void);
7070
scheduler_manager_ctx_t *initialize_scheduler_manager_context(char *dbname, dsm_segment *seg);

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