Detectando cuándo ha terminado ChucK child shred
-
01-07-2019 - |
Pregunta
¿Es posible determinar cuándo ha terminado de ejecutarse un fragmento secundario de ChucK si se tiene una referencia al fragmento secundario?Por ejemplo, en este código:
// define function go()
fun void go()
{
// insert code
}
// spork another, store reference to new shred in offspring
spork ~ go() => Shred @ offspring;
¿Es posible determinar cuándo offspring
¿Se terminó de ejecutar?
Solución
Yo diría que sí, permítanme citar el archivo "VERSIONES" de la última versión;
- (added) int Shred.done() // is the shred done?
int Shred.running() // is the shred running?
No estoy 100% seguro de a qué se supone que se refiere "ejecutar" (¿quizás no lo entendí bien?), pero "hecho" parece satisfacer sus necesidades;
================== 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<======================
Tenga en cuenta que llamarlos en un objeto Shred sin ningún proceso de trituración asociado devolverá números más o menos aleatorios, lo que probablemente sea un error.
---Respuesta de Kassen en lista de correo de usuarios de chuck.