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