Rilevare quando ChucK bambino ha finito di distruggere
-
01-07-2019 - |
Domanda
È possibile determinare quando un bambino ChucK shred ha terminato l'esecuzione, se si dispone di un riferimento per il bambino shred?Per esempio, in questo codice:
// define function go()
fun void go()
{
// insert code
}
// spork another, store reference to new shred in offspring
spork ~ go() => Shred @ offspring;
È possibile determinare quando offspring
è in esecuzione?
Soluzione
Direi quindi, permettetemi di citare il "VERSIONI" file dall'ultima release;
- (added) int Shred.done() // is the shred done?
int Shred.running() // is the shred running?
Io non sono sicuro al 100% di quello che "in esecuzione" dovrebbe vedere (forse ho frainteso?) ma il "fatto" sembra soddisfare le vostre esigenze;
================== 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<======================
Si prega di notare che la chiamata di questi su un Brandello oggetto senza distruggere processo collegato ad esso restituirà più o meno casuale di numeri che probabilmente è un bug.
---Risposta da Casse su chuck mailing list degli utenti.