X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fping.c;h=ecbbd9d0f32960b0174f350fe003fe68a8e5ce51;hb=99eb08be924850cf76e3dece205d5cbf9c7d74c7;hp=8bbb80765f54a1b76021b3be4dea1ad5d49a832d;hpb=51a4e62d7d0e73d8d5822efaef1e3218b5ad0373;p=collectd.git diff --git a/src/ping.c b/src/ping.c index 8bbb8076..ecbbd9d0 100644 --- a/src/ping.c +++ b/src/ping.c @@ -236,7 +236,7 @@ static int ping_dispatch_all (pingobj_t *pingobj) /* {{{ */ static void *ping_thread (void *arg) /* {{{ */ { - static pingobj_t *pingobj = NULL; + pingobj_t *pingobj = NULL; struct timeval tv_begin; struct timeval tv_end; @@ -354,7 +354,7 @@ static void *ping_thread (void *arg) /* {{{ */ * `ts_wait'. */ time_calc (&ts_wait, &ts_int, &tv_begin, &tv_end); - status = pthread_cond_timedwait (&ping_cond, &ping_lock, &ts_wait); + pthread_cond_timedwait (&ping_cond, &ping_lock, &ts_wait); if (ping_thread_loop <= 0) break; } /* while (ping_thread_loop > 0) */ @@ -416,8 +416,10 @@ static int stop_thread (void) /* {{{ */ status = -1; } + pthread_mutex_lock (&ping_lock); memset (&ping_thread_id, 0, sizeof (ping_thread_id)); ping_thread_error = 0; + pthread_mutex_unlock (&ping_lock); return (status); } /* }}} int stop_thread */