Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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)