Chris Hegarty wrote:
Trivially, should the main thread in the test be waiting on the three other threads to complete before exiting?

I think jtreg will try to cleanup once the main thread completes. The main thread should keep an array of the threads it creates and invoke join() on each of them before returning from main. We do this all the time in other areas.
Right, once the main thread completes then jtreg will attempt to cleanup the remaining non-daemon threads in the thread group. It does this by interrupting each of the remaining threads in a loop up to a maximum number of rounds or until the remaining threads have terminated. It's possible that if the test is changed up to join on each of the 3 threads that this intermittent failure will go away. If so, then it suggests to me that perhaps the interrupt is causing a side effect that causes one of the threads to go into a loop block uninterruptedly. This is just a guess of course and it requires digging into the Locale code to come up with specific theories.

-Alan.

Reply via email to