Files
epics-base/documentation/new-notes/PR-788.md
T

22 lines
914 B
Markdown

### epicsThreadGetCPUs and callbackParallelThreads
On systems that support it (e.g. recent Linux systems), `epicsThreadGetCPUs()`
now takes the current cpu affinity mask of the calling thread into acount.
That fixes the problem that an IOC which was started with a limited affinity
mask (e.g. using `taskset`) and that called `callbackParallelThreads` with an
argument of 0 in the startup script, had started more parallel callback
threads than it has CPU cores available.
The iocsh function `callbackParallelThreads` now also accepts positive or
negative percentages for `count`, referring to the availabple number of cores
and always rounding the number of used cores down with a minimum of 1.
#### Examples
```text
# use up to 25% of available cpu cores for callback threads
callbackParallelThreads 25%
# keep at least 10% of available cpu cores unused for callback threads
callbackParallelThreads -10%
```