Author: mturk Date: Tue Oct 7 23:38:11 2008 New Revision: 702732 URL: http://svn.apache.org/viewvc?rev=702732&view=rev Log: Fix simple thread join. Thread can be closed before even initialized
Modified: tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Modified: tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c?rev=702732&r1=702731&r2=702732&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c (original) +++ tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Tue Oct 7 23:38:11 2008 @@ -234,8 +234,8 @@ static apr_global_mutex_t *jk_log_lock = NULL; static char *jk_shm_file = NULL; static size_t jk_shm_size = 0; -static int jk_watchdog_interval = 0; -static int jk_watchdog_done = 0; +static volatile int jk_watchdog_interval = 0; +static volatile int jk_watchdog_running = 0; /* * Worker stuff @@ -2212,7 +2212,7 @@ /* Force the watchdog thread exit */ if (jk_watchdog_interval > 0) { jk_watchdog_interval = 0; - while (!jk_watchdog_done) + while (jk_watchdog_running) apr_sleep(apr_time_from_sec(1)); } jk_shm_close(); @@ -2849,9 +2849,12 @@ if (JK_IS_DEBUG_LEVEL(conf->log)) jk_log(conf->log, JK_LOG_DEBUG, "Watchdog thread running"); + jk_watchdog_running = 1; wc_maintain(conf->log); + if (!jk_watchdog_interval) + break; } - jk_watchdog_done = 1; + jk_watchdog_running = 0; return NULL; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]