commit cf4b3dbd445799bfad21e84777eff91d3a409f21 Author: Alexander Færøy ahf@torproject.org Date: Thu Dec 20 15:07:05 2018 +0100
Use the subsystem list to initialize and shutdown process module.
This patch makes the process module use the subsystem list for initializing and shutting down.
See: https://bugs.torproject.org/28847 --- changes/ticket28847 | 3 +++ src/app/main/subsystem_list.c | 2 ++ src/lib/process/include.am | 2 ++ src/lib/process/process_sys.c | 33 +++++++++++++++++++++++++++++++++ src/lib/process/process_sys.h | 14 ++++++++++++++ 5 files changed, 54 insertions(+)
diff --git a/changes/ticket28847 b/changes/ticket28847 new file mode 100644 index 000000000..63100c581 --- /dev/null +++ b/changes/ticket28847 @@ -0,0 +1,3 @@ + o Minor features (process): + - Use the subsystem module to initialize and shut down the process module. + Closes ticket 28847. diff --git a/src/app/main/subsystem_list.c b/src/app/main/subsystem_list.c index 8640329e9..122f7af21 100644 --- a/src/app/main/subsystem_list.c +++ b/src/app/main/subsystem_list.c @@ -18,6 +18,7 @@ #include "lib/time/time_sys.h" #include "lib/tls/tortls_sys.h" #include "lib/wallclock/wallclock_sys.h" +#include "lib/process/process_sys.h"
#include <stddef.h>
@@ -32,6 +33,7 @@ const subsys_fns_t *tor_subsystems[] = { &sys_logging, /* -90 */ &sys_time, /* -90 */ &sys_network, /* -90 */ + &sys_process, /* -80 */ &sys_compress, /* -70 */ &sys_crypto, /* -60 */ &sys_tortls, /* -50 */ diff --git a/src/lib/process/include.am b/src/lib/process/include.am index a2d54b623..83b67bf02 100644 --- a/src/lib/process/include.am +++ b/src/lib/process/include.am @@ -10,6 +10,7 @@ src_lib_libtor_process_a_SOURCES = \ src/lib/process/env.c \ src/lib/process/pidfile.c \ src/lib/process/process.c \ + src/lib/process/process_sys.c \ src/lib/process/process_unix.c \ src/lib/process/process_win32.c \ src/lib/process/restrict.c \ @@ -27,6 +28,7 @@ noinst_HEADERS += \ src/lib/process/env.h \ src/lib/process/pidfile.h \ src/lib/process/process.h \ + src/lib/process/process_sys.h \ src/lib/process/process_unix.h \ src/lib/process/process_win32.h \ src/lib/process/restrict.h \ diff --git a/src/lib/process/process_sys.c b/src/lib/process/process_sys.c new file mode 100644 index 000000000..a880ff146 --- /dev/null +++ b/src/lib/process/process_sys.c @@ -0,0 +1,33 @@ +/* Copyright (c) 2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file process_sys.c + * \brief Subsystem object for process setup. + **/ + +#include "orconfig.h" +#include "lib/subsys/subsys.h" +#include "lib/process/process_sys.h" +#include "lib/process/process.h" + +static int +subsys_process_initialize(void) +{ + process_init(); + return 0; +} + +static void +subsys_process_shutdown(void) +{ + process_free_all(); +} + +const subsys_fns_t sys_process = { + .name = "process", + .level = -80, + .supported = true, + .initialize = subsys_process_initialize, + .shutdown = subsys_process_shutdown +}; diff --git a/src/lib/process/process_sys.h b/src/lib/process/process_sys.h new file mode 100644 index 000000000..b299334b6 --- /dev/null +++ b/src/lib/process/process_sys.h @@ -0,0 +1,14 @@ +/* Copyright (c) 2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file process_sys.h + * \brief Declare subsystem object for the process module. + **/ + +#ifndef TOR_PROCESS_SYS_H +#define TOR_PROCESS_SYS_H + +extern const struct subsys_fns_t sys_process; + +#endif /* !defined(TOR_PROCESS_SYS_H) */
tor-commits@lists.torproject.org