Посмотрите документацию для объекта Condition
.Вы можете создать Condition
, подождать его в одном потоке, а затем возобновить этот поток позже / из другого потока, используя condition.unhang
или condition.test_(true).signal
.
Код для вашего обработчика сообщений OSC может выглядеть примерно так:
~stepCond = Condition();
Routine({
"starting".postln;
~stepCond.wait;
"continuing".postln;
}).play;
OSCfunc(\step, {
~stepCond.unhang();
}, '/step')