decreased thread idle time to 5 seconds. exiting worker thread if stop flag is raised.

This commit is contained in:
valenok 2010-07-06 23:04:50 +01:00
parent 9a2b2d75f1
commit 4cf7851996

View File

@ -3576,7 +3576,7 @@ static bool_t get_socket(struct mg_context *ctx, struct socket *sp) {
ctx->num_idle++; ctx->num_idle++;
while (ctx->sq_head == ctx->sq_tail) { while (ctx->sq_head == ctx->sq_tail) {
ts.tv_nsec = 0; ts.tv_nsec = 0;
ts.tv_sec = time(NULL) + 10; ts.tv_sec = time(NULL) + 5;
if (pthread_cond_timedwait(&ctx->empty_cond, &ctx->mutex, &ts) != 0) { if (pthread_cond_timedwait(&ctx->empty_cond, &ctx->mutex, &ts) != 0) {
// Timeout! release the mutex and return // Timeout! release the mutex and return
(void) pthread_mutex_unlock(&ctx->mutex); (void) pthread_mutex_unlock(&ctx->mutex);
@ -3615,7 +3615,7 @@ static void worker_thread(struct mg_context *ctx) {
(void) memset(&conn, 0, sizeof(conn)); (void) memset(&conn, 0, sizeof(conn));
while (get_socket(ctx, &conn.client) == TRUE) { while (ctx->stop_flag == 0 && get_socket(ctx, &conn.client) == TRUE) {
conn.birth_time = time(NULL); conn.birth_time = time(NULL);
conn.ctx = ctx; conn.ctx = ctx;