From a9ade9669ac27ee982b432e3a4e3e9fdb751284f Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Sat, 30 Jul 2022 10:23:38 -0700 Subject: [PATCH] switch dbScan to epicsThreadCreateOpt() --- modules/database/src/ioc/db/dbScan.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/modules/database/src/ioc/db/dbScan.c b/modules/database/src/ioc/db/dbScan.c index f3e354e78..281b90ed7 100644 --- a/modules/database/src/ioc/db/dbScan.c +++ b/modules/database/src/ioc/db/dbScan.c @@ -761,14 +761,16 @@ void scanOnceQueueShow(const int reset) static void initOnce(void) { + epicsThreadOpts opts = EPICS_THREAD_OPTS_INIT; + opts.joinable = 0; + opts.priority = epicsThreadPriorityScanLow + nPeriodic; + opts.stackSize = epicsThreadStackBig; if ((onceQ = epicsRingBytesLockedCreate(sizeof(onceEntry)*onceQueueSize)) == NULL) { cantProceed("initOnce: Ring buffer create failed\n"); } if(!onceSem) onceSem = epicsEventMustCreate(epicsEventEmpty); - onceTaskId = epicsThreadCreate("scanOnce", - epicsThreadPriorityScanLow + nPeriodic, - epicsThreadGetStackSize(epicsThreadStackBig), onceTask, 0); + onceTaskId = epicsThreadCreateOpt("scanOnce", onceTask, 0, &opts); epicsEventWait(startStopEvent); } @@ -932,14 +934,16 @@ static void spawnPeriodic(int ind) { periodic_scan_list *ppsl = papPeriodic[ind]; char taskName[20]; + epicsThreadOpts opts = EPICS_THREAD_OPTS_INIT; + opts.joinable = 0; + opts.priority = epicsThreadPriorityScanLow + ind; + opts.stackSize = epicsThreadStackBig; if (!ppsl) return; sprintf(taskName, "scan-%g", ppsl->period); - periodicTaskId[ind] = epicsThreadCreate( - taskName, epicsThreadPriorityScanLow + ind, - epicsThreadGetStackSize(epicsThreadStackBig), - periodicTask, (void *)ppsl); + periodicTaskId[ind] = epicsThreadCreateOpt( + taskName, periodicTask, (void *)ppsl, &opts); epicsEventWait(startStopEvent); }