|
@@ -451,14 +451,17 @@ void job_post(const xs_val *job, int urgent)
|
|
|
job_fifo = xs_list_append(job_fifo, job);
|
|
|
|
|
|
p_stat->job_fifo_size++;
|
|
|
+
|
|
|
+ srv_debug(2, xs_fmt(
|
|
|
+ "job_fifo sizes: %d %08x", p_stat->job_fifo_size, xs_size(job_fifo)));
|
|
|
}
|
|
|
|
|
|
|
|
|
pthread_mutex_unlock(&job_mutex);
|
|
|
- }
|
|
|
|
|
|
-
|
|
|
- sem_post(job_sem);
|
|
|
+
|
|
|
+ sem_post(job_sem);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -502,9 +505,12 @@ static void *job_thread(void *arg)
|
|
|
|
|
|
srv_debug(2, xs_fmt("job thread %d wake up", pid));
|
|
|
|
|
|
- if (job == NULL)
|
|
|
- break;
|
|
|
+ if (job == NULL)
|
|
|
+ continue;
|
|
|
|
|
|
+ if (xs_type(job) == XSTYPE_FALSE)
|
|
|
+ break;
|
|
|
+ else
|
|
|
if (xs_type(job) == XSTYPE_DATA) {
|
|
|
|
|
|
FILE *f = NULL;
|
|
@@ -703,9 +709,9 @@ void httpd(void)
|
|
|
|
|
|
p_stat->srv_running = 0;
|
|
|
|
|
|
-
|
|
|
+
|
|
|
for (n = 1; n < p_stat->n_threads; n++)
|
|
|
- job_post(NULL, 0);
|
|
|
+ job_post(xs_stock_false, 0);
|
|
|
|
|
|
|
|
|
for (n = 0; n < p_stat->n_threads; n++)
|