aboutsummaryrefslogtreecommitdiff
path: root/src/pies.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2016-02-19 08:41:12 +0200
committerSergey Poznyakoff <gray@gnu.org>2016-02-19 08:41:12 +0200
commite6902abfddb4d7b16dc9a4231a3781f354a08cd5 (patch)
treec634621af2ae765460e010ce83c8492ed4e859bc /src/pies.h
parent51a797445a4bfc34ad1ae7ea91e12486d823abda (diff)
downloadpies-e6902abfddb4d7b16dc9a4231a3781f354a08cd5.tar.gz
pies-e6902abfddb4d7b16dc9a4231a3781f354a08cd5.tar.bz2
Revamp program termination after reconfiguring.
* src/pies.h (PIES_CHLD_GC): New op. (progman_stop_tag): Remove proto. * src/pies.c (main): Handle PIES_CHLD_GC: stop all programs marked for termination. * src/comp.c (component_config_commit): Mark leftover components for termination, instead of waiting for them to terminate. * src/sysvinit.c (runlevel_setup_prog): Skip prog if its active status didn't change. Mark inactivated progs for termination. (sysvinit_runlevel_setup): Schedule PIES_CHLD_GC. (inittrans): Don't wait for programs to terminate. That will be done in the main loop. * src/prog.h (prog)<stop>: New boolean member. * src/progman.c (progman_cleanup) (progman_stop_component): Clear the stop flag. (progman_gc): New function. (progman_stop_tag): Remove.
Diffstat (limited to 'src/pies.h')
-rw-r--r--src/pies.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pies.h b/src/pies.h
index 9a3dfca..b61e11b 100644
--- a/src/pies.h
+++ b/src/pies.h
@@ -318,6 +318,7 @@ void free_action (struct action *act);
318#define PIES_CHLD_NONE 0 318#define PIES_CHLD_NONE 0
319#define PIES_CHLD_CLEANUP 0x01 319#define PIES_CHLD_CLEANUP 0x01
320#define PIES_CHLD_WAKEUP 0x02 320#define PIES_CHLD_WAKEUP 0x02
321#define PIES_CHLD_GC 0x04
321 322
322void pies_schedule_children (int op); 323void pies_schedule_children (int op);
323 324
@@ -330,7 +331,6 @@ void progman_cleanup (int expect_term);
330void progman_filter (int (*filter) (struct component *, void *data), 331void progman_filter (int (*filter) (struct component *, void *data),
331 void *data); 332 void *data);
332int progman_wait_until (int (*cond) (void *), void *data); 333int progman_wait_until (int (*cond) (void *), void *data);
333void progman_stop_tag (const char *name);
334int progman_accept (int socket, void *data); 334int progman_accept (int socket, void *data);
335 335
336void progman_create_sockets (void); 336void progman_create_sockets (void);

Return to:

Send suggestions and report system problems to the System administrator.