Hi Roger,

Thank you for reviewing, fixed timeout scale and pushed.

Thank you
-Hamlin

On 2016/12/1 3:49, Roger Riggs wrote:
Hi Hamlin,


On 11/29/2016 9:09 PM, Hamlin Li wrote:
Hi Roger,

Thank you for reviewing, please check comments in line.

webrev: http://cr.openjdk.java.net/~mli/8049316/webrev.01/


On 2016/11/30 0:03, Roger Riggs wrote:
Hi Hamlin,

Wakeup.java:

 - Some refactoring may make it easier to understand.
   Perhaps moving waitSleeper to be a method on Sleeper.
The use of cyclicBarrier seems fine but could use a comment somewhere saying what threads/functions are being coordinated; putting them both in Sleeper would make it easier to see.

- line 126,127: Add a Sleeper constructor to initialize these as needed.

- Some of the test stimulus is buried in the newSleeper methods that was previously in line in main. It seemed clearer what case was being tested in the original. They are buried in static factory 'newSleeper' functions with uninformative names.
   lines 112, 116, 120.
All above fixed.
I was thinking that the createSleeper(sel, want, before) method forced two cases together that didn't need to be in the same method and could be separated in the newSleeperWantInterrupt and
newSleeperWithInterruptBeforeSelect factory methods.


line 104: the timeout value should be scaled by jdk/testlibrary/Utils.adjustTimeout (test.timeout.factor).


- If I read it right, some cases where events don't happen that used to be reported as exceptions ("Interrupt never delivered") will now be reported as the test timing out. (infinite loop at line 85).
No, it will finally checked by a time sleeper.finish(0). At first, I don't want to depends on a specific time, because I don't know what exact timeout we should use, but as you asked, I think it's ok to finish(20_000), it should be long enough.

Otherwise is fine.

Thanks, Roger


Thank you
-Hamlin

Thanks, Roger

On 11/29/2016 4:23 AM, Hamlin Li wrote:
Would you please review the below patch?

bug: https://bugs.openjdk.java.net/browse/JDK-8049316
webrev: http://cr.openjdk.java.net/~mli/8049316/webrev.00/

Root cause:
1. it depends on sleeping time to check failure, which is not reliable in some extreme situation
2. it mix several tests together with a loop in Sleeper

Solution:
1. synchronize between threads.
2. isolate tests.

Thank you
Hamlin




Reply via email to