From 51c7dea0709d3d18810025e5cd5a2d6db0c9e82a Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Thu, 28 Aug 2014 12:30:07 -0700 Subject: [PATCH] ioc/db: make sure each priority gets at least one thread. --- src/ioc/db/callback.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ioc/db/callback.c b/src/ioc/db/callback.c index 52d72dbf5..eca624798 100644 --- a/src/ioc/db/callback.c +++ b/src/ioc/db/callback.c @@ -61,6 +61,8 @@ typedef struct cbQueueSet { static cbQueueSet callbackQueue[NUM_CALLBACK_PRIORITIES]; int callbackThreadsDefault = 1; +/* Don't know what a reasonable default is (yet). + * For the time being: parallel means 2 if not explicitly specified */ int callbackParallelThreadsDefault = 2; epicsExportAddress(int,callbackParallelThreadsDefault); @@ -110,6 +112,7 @@ int callbackParallelThreads(int count, const char *prio) count = epicsThreadGetCPUs() + count; else if (count == 0) count = callbackParallelThreadsDefault; + if (count < 1) count = 1; if (!prio || strcmp(prio, "") == 0 || strcmp(prio, "*") == 0) { for (i = 0; i < NUM_CALLBACK_PRIORITIES; i++) {