One quick point: unless I'm misunderstanding something, there seems to be no easy way to wait on multiple events to complete if those events can occur in any order. For instance, suppose we have 5 events, P1 - P5 If we know that the events will occur in some specified order (say 1-2-3-4-5), then we can just loop over C<wait Px>, specifying the apporpriate x for each iteration. However, if the events actually occur in the order 4-3-2-5-1, we'll drop events 2-5 while waiting for 1. Now, this is fine if 1 _must_ happen before 2 etc., but often this is more restrictive than we need to be, since all we really care about is ensuring that all 5 events are handled before we do anything else. Is there any easy and efficient way to do this with the current framework?
There's no easy way, no. The best you could do is have the code:
wait E1 wait E2 wait E3 wait E4 wait E5
which'll work (and everything'll get processed properly, and as soon as it's available) but is somewhat nasty.
Thinking we might want:
waitall Parray_of_events waitany Parray_of_events
? -- Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk