Pavel Rebriy wrote:
I created a JIRA HARMONY-3504 [1] about ThreadGroupTest failure and attached
a fixing patch.

I looked at the patch in HARMONY-3504 and I don't quite like it. It changes the following assertion

assert(tm_native_thread->request > 0);

to

assert(tm_native_thread->request > 0 || tm_native_thread->safepoint_callback == NULL);

The first version check the condition atomically, and doesn't contain a race condtion. But the 2nd version may contain a race condition. You need to check that either 1st or 2nd condition is true.

But it may happen that while checking 1st condition only the 2nd is true, and while checking the 2nd condition, only 1st is true. So this assertion will fail while the whole condition stays true all the time. If it is not possible to check the whole condition atomically, probably it is necessary to remove this assertion entirely.

[1] https://issues.apache.org/jira/browse/HARMONY-3504

On 27/03/07, Vladimir Ivanov <[EMAIL PROTECTED]> wrote:

On 3/27/07, Peter Novodvorsky <[EMAIL PROTECTED]> wrote:
> Hello,
>
> Thanks for the log, Vladimir, I'll look at the bug. From my point of
> view we shouldn't rollback  3413, but we should try to fix it right
> now instead.

Of cause, it is match better than rollback if it requires not too match
time...

--
Gregory

Reply via email to