RFR 8067241 DeadlockTest.java failed with negative timeout value

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Tue Dec 16 12:08:50 UTC 2014


On 12/15/2014 06:38 PM, Daniel Fuchs wrote:
> On 12/12/14 09:56, shanliang wrote:
>> Updated.
>>
>> Here is the new version:
>> http://cr.openjdk.java.net/~sjiang/JDK-8067241/01/
>>
>> Thanks,
>> Shanliang
>
> Hi Shanliang,
>
> Your changes looks good to me. WRT using a Phaser, it would
> require a careful analysis to assert that modifying the
> locking strategy - especially things like
>    90             synchronized(o) {
>    91                 synchronized(this) {
>    92                     gotLock = true;
>    93
>    94                     this.notify();
>    95                 }
> still preserve the nature of the test.
> I wonder if it's worth the trouble.

Well, the test tries to achieve step-by-step execution of two concurrent 
threads where one thread can only proceed when the other one has already 
reached a predefined execution point. This is exactly what the Phaser is 
fit for. Please note that by using Phasero one could also get rid off 
the Thread.sleep(<really big number>) construct to simulate the fact 
that the BadBoy thread doesn't finish before the main thread had the 
chance to assert the postconditions.

But the change is already in .. what is done is done. It's just a pity 
we missed the chance to improve the test a bit while fixing this issue.

-JB-

>
> best regards,
>
> -- daniel



More information about the serviceability-dev mailing list