summaryrefslogtreecommitdiff
path: root/httpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'httpd.c')
-rw-r--r--httpd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/httpd.c b/httpd.c
index ee1ecb7..a8a6e5f 100644
--- a/httpd.c
+++ b/httpd.c
@@ -257,7 +257,8 @@ void job_post(const xs_val *job)
257 pthread_mutex_lock(&job_mutex); 257 pthread_mutex_lock(&job_mutex);
258 258
259 /* add to the fifo */ 259 /* add to the fifo */
260 job_fifo = xs_list_append(job_fifo, job); 260 if (job_fifo != NULL)
261 job_fifo = xs_list_append(job_fifo, job);
261 262
262 /* unlock the mutex */ 263 /* unlock the mutex */
263 pthread_mutex_unlock(&job_mutex); 264 pthread_mutex_unlock(&job_mutex);
@@ -278,7 +279,8 @@ void job_wait(xs_val **job)
278 pthread_mutex_lock(&job_mutex); 279 pthread_mutex_lock(&job_mutex);
279 280
280 /* dequeue */ 281 /* dequeue */
281 job_fifo = xs_list_shift(job_fifo, job); 282 if (job_fifo != NULL)
283 job_fifo = xs_list_shift(job_fifo, job);
282 284
283 /* unlock the mutex */ 285 /* unlock the mutex */
284 pthread_mutex_unlock(&job_mutex); 286 pthread_mutex_unlock(&job_mutex);
@@ -465,7 +467,9 @@ void httpd(void)
465 for (n = 0; n < n_threads; n++) 467 for (n = 0; n < n_threads; n++)
466 pthread_join(threads[n], NULL); 468 pthread_join(threads[n], NULL);
467 469
470 pthread_mutex_lock(&job_mutex);
468 job_fifo = xs_free(job_fifo); 471 job_fifo = xs_free(job_fifo);
472 pthread_mutex_unlock(&job_mutex);
469 473
470 srv_log(xs_fmt("httpd stop %s:%d", address, port)); 474 srv_log(xs_fmt("httpd stop %s:%d", address, port));
471} 475}