Explorar o código

Fix for ALTERNATIVE_QUEUE mode

Jeremy Friesner %!s(int64=2) %!d(string=hai) anos
pai
achega
0891e955d1
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  1. 4 0
      src/civetweb.c

+ 4 - 0
src/civetweb.c

@@ -20527,7 +20527,11 @@ static int mg_start_worker_thread(struct mg_context *ctx, int only_if_no_idle_th
 	}
 
 	(void)pthread_mutex_lock(&ctx->thread_mutex);
+#if defined(ALTERNATIVE_QUEUE)
+	if ((only_if_no_idle_threads)&&(ctx->idle_worker_thread_count > 0)) {
+#else
 	if ((only_if_no_idle_threads)&&(ctx->idle_worker_thread_count > (unsigned)(ctx->sq_head-ctx->sq_tail))) {
+#endif
 		(void)pthread_mutex_unlock(&ctx->thread_mutex);
 		return -2;  /* There are idle threads available, so no need to spawn a new worker thread now */
 	}