Hi Ivan,

On 7/09/2014 4:07 PM, Ivan Gerasimov wrote:
Hello!

This is a proposal to address issue with wrong exit codes from a Java
processes on Windows.
In order to avoid a race, calls to _endthread(), exit and _exit() are
explicitly synchronized.
We allow simultaneous calls to _endthread() by multiple threads.
However, at the time exit() or _exit() is called, no calls to
_endthread() are allowed.

Some instrumentation added with JDK-8055338 remain in the code to help
diagnose the failures if they still occur.

BUGURL: https://bugs.openjdk.java.net/browse/JDK-8057744
WEBREV: http://cr.openjdk.java.net/~igerasim/8057744/0/webrev/

As per preliminary discussions this all looks okay.

One small concern I have is that the exit() may be arbitrarily delayed if the mutexes are not assigned fairly, and the application (more likely a test) is creating shortlived threads concurrently with the exit attempt. But I guess we will just have to deal with that if it arises.

Thanks,
David

Sincerely yours,
Ivan

Reply via email to