what about "joining" threads, and comparing the output at those points? For async IO, a join is more or less implemented by a "wait" operation, no? (or the parrot equivalent for that).
just a thought. kjs On Dec 31, 2007 8:57 PM, chromatic <[EMAIL PROTECTED]> wrote: > On Monday 31 December 2007 05:50:47 Allison Randal wrote: > > > In the concurrency work I'm about to check in, I have some tests that > > fail intermittently because they test for something like: > > > > 1 > > alarm1 > > 2 > > alarm2 > > 3 > > alarm3 > > alarm1 > > alarm3 > > 4 > > alarm3 > > alarm3 > > alarm3 > > 5 > > done. > > > > When the actual output is something like: > > > > 1 > > 2 > > alarm1 > > 3 > > alarm2 > > 4 > > alarm3 > > alarm1 > > 5 > > alarm3 > > done. > > alarm3 > > alarm3 > > alarm3 > > > > Everything that should happen is happening, just not in the expected > > order, or even in a consistent order from one test run to the next. It's > > asynchronous code, so there isn't any guaranteed order. > > It sounds like the tests shouldn't print but instead set flag variables > and > then something at the end can check those flags and then report success or > failure. > > -- c >