Определите, может ли S-функция работать в многопоточном режиме
ssSetRuntimeThreadSafetyCompliance(SimStruct *S, int_T val)
SSimStruct представляет S-функциональный блок.
valНастройка соответствия требованиям Threadsafety. Настройка может быть следующей:
RUNTIME_THREAD_SAFETY_COMPLIANCE_UNKNOWN - Объявите, что неизвестно, является ли S-функция threadsafe.
RUNTIME_THREAD_SAFETY_COMPLIANCE_TRUE - Объявить S-функцию как threadsafe.
RUNTIME_THREAD_SAFETY_COMPLIANCE_FALSE - Объявите S-функцию не многопоточной.
Используйте этот макрос в S-функции, чтобы установить его как threadsafe, что означает, что он может работать в многопоточном режиме. Этот параметр работает с set_param функция MultithreadedSim свойство block. Поведение таково:
| Выбор | MultithreadedSim Настройка | S-функция работает с одной или с несколькими потоками |
|---|---|---|
RUNTIME_THREAD_SAFETY_COMPLIANCE_UNKNOWN | 'auto' | Одиночный поток |
RUNTIME_THREAD_SAFETY_COMPLIANCE_TRUE | 'auto' | Мультинить |
RUNTIME_THREAD_SAFETY_COMPLIANCE_FALSE | 'auto' | Одиночный поток |
| — | 'off' | Установка игнорируется, и S-функциональный блок работает в одиночном режиме |
C, C++
См. S-функцию, используемую в matlabroot/toolbox/simulink/simdemos/simfeatures/src/slexCoSimPrimeSFcn.c