22 lines
914 B
Markdown
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%
|
|
```
|