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