Определение того, когда измельчение ChucK child завершено
-
01-07-2019 - |
Вопрос
Можно ли определить, когда дочерний фрагмент ChucK завершил выполнение, если у вас есть ссылка на дочерний фрагмент?Например, в этом коде:
// define function go()
fun void go()
{
// insert code
}
// spork another, store reference to new shred in offspring
spork ~ go() => Shred @ offspring;
Можно ли определить, когда offspring
выполнение завершено?
Решение
Я бы сказал так, позвольте мне процитировать файл "ВЕРСИИ" из последней версии;
- (added) int Shred.done() // is the shred done?
int Shred.running() // is the shred running?
Я не уверен на 100%, к чему относится "запуск" (возможно, я неправильно его понимаю?), но "готово", похоже, соответствует вашим потребностям;
================== 8<================
fun void foo()
{
second => now;
}
spork ~ foo() @=> Shred bar;
<<<bar.done()>>>;
<<<bar.running()>>>; // why is this 0? Bug?
2::second => now;
<<<bar.done()>>>;
<<<bar.running()>>>;
==========8<======================
Пожалуйста, обратите внимание, что вызов их для объекта Shred без привязанного к нему процесса shred вернет более или менее случайные числа, что, вероятно, является ошибкой.
---Ответ от Кассена на список рассылки пользователей chuck.