|
@@ -89,7 +89,14 @@ cpu_init(void)
|
|
|
event_add(reply_event, NULL);
|
|
|
}
|
|
|
if (!threadpool) {
|
|
|
- threadpool = threadpool_new(get_num_cpus(get_options()),
|
|
|
+
|
|
|
+ In our threadpool implementation, half the threads are permissive and
|
|
|
+ half are strict (when it comes to running lower-priority tasks). So we
|
|
|
+ always make sure we have at least two threads, so that there will be at
|
|
|
+ least one thread of each kind.
|
|
|
+ */
|
|
|
+ const int n_threads = get_num_cpus(get_options()) + 1;
|
|
|
+ threadpool = threadpool_new(n_threads,
|
|
|
replyqueue,
|
|
|
worker_state_new,
|
|
|
worker_state_free,
|