RFR [8057744] (process) Synchronize exiting of threads and process [win]

David Holmes david.holmes at oracle.com
Mon Sep 8 02:03:06 UTC 2014


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


More information about the serviceability-dev mailing list