|
|
- From 3c7cbd685017c1bf9ba2eaa811b63842bec28f64 Mon Sep 17 00:00:00 2001
- From: Mr-DaveDev <MotionMrDaveDev@gmail.com>
- Date: Mon, 1 Jan 2018 13:07:08 -0700
- Subject: [PATCH] Initialize the thread at start of main
-
- Closes #589
- ---
- logger.c | 5 -----
- motion.c | 30 ++++++++++++++++--------------
- 2 files changed, 16 insertions(+), 19 deletions(-)
-
- diff --git a/logger.c b/logger.c
- index c55044b..5ef2f85 100644
- --- a/logger.c
- +++ b/logger.c
- @@ -193,11 +193,6 @@ void motion_log(int level, unsigned int type, int errno_flag, const char *fmt, .
-
- //printf("log_type %d, type %d level %d\n", log_type, type, level);
-
- - /*
- - * If pthread_getspecific fails (e.g., because the thread's TLS doesn't
- - * contain anything for thread number, it returns NULL which casts to zero,
- - * which is nice because that's what we want in that case.
- - */
- threadnr = (unsigned long)pthread_getspecific(tls_key_threadnr);
-
- /*
- diff --git a/motion.c b/motion.c
- index 985d4b2..9fe58c1 100644
- --- a/motion.c
- +++ b/motion.c
- @@ -2886,10 +2886,6 @@ static void motion_startup(int daemonize, int argc, char *argv[])
- }
-
-
- - //set_log_level(cnt_list[0]->log_level);
- -
- - MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "Motion "VERSION" Started");
- -
- if ((cnt_list[0]->conf.log_file) && (strncmp(cnt_list[0]->conf.log_file, "syslog", 6))) {
- set_log_mode(LOGMODE_FILE);
- ptr_logfile = set_logfile(cnt_list[0]->conf.log_file);
- @@ -2908,6 +2904,8 @@ static void motion_startup(int daemonize, int argc, char *argv[])
- MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "Logging to syslog");
- }
-
- + MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "Motion "VERSION" Started");
- +
- if ((cnt_list[0]->conf.log_type_str == NULL) ||
- !(cnt_list[0]->log_type = get_log_type(cnt_list[0]->conf.log_type_str))) {
- cnt_list[0]->log_type = TYPE_DEFAULT;
- @@ -3053,8 +3051,22 @@ int main (int argc, char **argv)
- */
- struct sigaction sig_handler_action;
- struct sigaction sigchild_action;
- +
- +
- setup_signals(&sig_handler_action, &sigchild_action);
-
- + /*
- + * Create and a thread attribute for the threads we spawn later on.
- + * PTHREAD_CREATE_DETACHED means to create threads detached, i.e.
- + * their termination cannot be synchronized through 'pthread_join'.
- + */
- + pthread_attr_init(&thread_attr);
- + pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
- +
- + /* Create the TLS key for thread number. */
- + pthread_key_create(&tls_key_threadnr, NULL);
- + pthread_setspecific(tls_key_threadnr, (void *)(0));
- +
- motion_startup(1, argc, argv);
-
- ffmpeg_global_init();
- @@ -3102,16 +3114,6 @@ int main (int argc, char **argv)
- if (cnt_list[0]->conf.setup_mode)
- MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "Motion running in setup mode.");
-
- - /*
- - * Create and a thread attribute for the threads we spawn later on.
- - * PTHREAD_CREATE_DETACHED means to create threads detached, i.e.
- - * their termination cannot be synchronized through 'pthread_join'.
- - */
- - pthread_attr_init(&thread_attr);
- - pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
- -
- - /* Create the TLS key for thread number. */
- - pthread_key_create(&tls_key_threadnr, NULL);
-
- do {
- if (restart) {
- --
- 2.7.4
-
|