From: Pavel Rochnyack Date: Sat, 14 May 2016 21:42:28 +0000 (+0600) Subject: perl plugin: Mark thread as running to avoid deadlock moved from perl_shutdown()... X-Git-Tag: collectd-5.7.0~82 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=740926555f6813d64bbb1b30b6be0ca72e95314b;p=collectd.git perl plugin: Mark thread as running to avoid deadlock moved from perl_shutdown() to c_ithread_destroy() --- diff --git a/src/perl.c b/src/perl.c index 04745c85..1dd57a2b 100644 --- a/src/perl.c +++ b/src/perl.c @@ -1229,6 +1229,10 @@ static void c_ithread_destroy (c_ithread_t *ithread) assert (NULL != perl_threads); PERL_SET_CONTEXT (aTHX); + /* Mark as running to avoid deadlock: + c_ithread_destroy -> log_debug -> perl_log() + */ + ithread->running = 1; log_debug ("Shutting down Perl interpreter %p...", aTHX); #if COLLECT_DEBUG @@ -2371,10 +2375,6 @@ static int perl_shutdown (void) pthread_kill (thr->pthread, SIGTERM); ERROR ("perl shutdown: Thread hangs inside Perl. Thread killed."); } - /* Mark as running to avoid deadlock: - c_ithread_destroy -> log_debug -> perl_log() - */ - thr->running = 1; c_ithread_destroy (thr); }