у меня есть скрипт tcl, используемый для автоматизации тестирования (с интерфейсом CarMaker ScriptControl)
В сценарии я вызываю процедуру, где выполняется некоторый код, который может занять несколько миллисекунд, прежде чем он вернется. Однако если в определенный момент этого процесса он будет вызван снова, второй вызов завершится ошибкой и приведет к ошибке.
У меня нет контроля над тем, когда будет вызываться proc, потому что звонки поступают из другого приложения. Я ищу способ предотвратить параллельный вызов функции во время выполнения определенной части моего кода.
Примерно так:
proc MyProc {args} {
#Execute Code
set val 0
#---this part should not be interrupt
#Execute non interrupt Code
RegisterQuantities ($names)
Foreach name {
ReadQuantity $name
}
#------------------------------------
return val
}
Звонки поступают с ПК реального времени, который