
On 7/24/06, w31rd0
wrote: Another significant note: the shred which is calling these functions must not exit. Otherwise those functions won't work for some reason.
Developers, please correct me if I'm wrong :)
I think that might be related to a bug I ran into a while back. I'd have a shred report that it was going to exit (using <<<....>>> ), then exit. This would result in a shred that would be gone but no comment on the schreen. Having some small amount of time pass inbetween would fix this.
Could be the same issue; I'm not at home or near a chuck-ing computer but try a simple 1::ms => now; inbetween those lines and see wether it works. Ugly but maybe a work-around for now?
Currently in ChucK, a parent shred will terminate any child shreds when the parent terminates. For example: --- // start fun void foo() { <<< "foo!!!" >>>; } // spork foo spork ~ foo(); // end of program --- In this case, "foo" will NOT print because the parent shred has exited before the child has a chance to run. As Kassen mentioned, advancing time in the parent shred will allow children to execute. If no time advance is desired, me.yield() should work. --- // start fun void foo() { <<< "foo!!!" >>>; } // spork foo spork ~ foo(); // yield to let foo run, no time advance me.yield(); // end of program --- Hope this helps. Ge!