Hi Shanliang, I just notice that there are some synchronization issues in the test as well: all static variables used by the allocator thread should be declared volatile (chunkSize, mpool ...).
-- daniel On 1/22/14 2:27 PM, shanliang wrote:
Hi, The bug was reproduced only on jdk6 on my Mac, but well passed on 7/8/9. We can have several solutions, like to use: Runtime.getRuntime().maxMemory() Runtime.getRuntime().totalMemory; MemoryUsage.getCommitted() or hard-code chunkSize to be 1M. I found that the test ran much faster with: chunkSize = Runtime.getRuntime().freeMemory()/10; than: chunkSize = 1M; webrev: http://cr.openjdk.java.net/~sjiang/JDK-6980984/00/ bug: https://bugs.openjdk.java.net/browse/JDK-6980984 Thanks, Shanliang