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?
Simon