2008-09-19 6 views
2

Est-il possible de déterminer quand un fragment de ChucK a fini d'être exécuté si vous avez une référence au déchiquetage de l'enfant? Par exemple, dans ce code:Détection de la fin de la destruction de l'enfant ChucK

// define function go() 
fun void go() 
{ 
    // insert code 
} 

// spork another, store reference to new shred in offspring 
spork ~ go() => Shred @ offspring; 

Est-il possible de déterminer quand offspring est fait exécuter?

Répondre

4

Je dirais, laissez-moi citer le fichier "VERSIONS" de la dernière version;

- (added) int Shred.done() // is the shred done? 
      int Shred.running() // is the shred running? 

Je ne suis pas 100% sûr de ce que « l'exécution » est censé se référer à (peut-être que je comprends mal ce?) Mais « fait » semble répondre à vos besoins;

================== 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 < ====================

Veuillez noter que les appeler sur un objet Shred sans processus de déchiquetage attaché à cela retournera des nombres plus ou moins aléatoires, ce qui est probablement un bug.

--- Réponse de Kassen au chuck-users mailing list.

Questions connexes