[ https://issues.apache.org/jira/browse/POOL-182?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mohit Soni updated POOL-182: ---------------------------- Attachment: PerformanceTest.patch Current patch replaces use of volatiles with 'TaskStats' object and 'Callable'(s). Each thread executes a 'PerfTask' and collects the stats inside 'TaskStats' object. When all threads return, using 'TaskStats' objects of each thread, an aggregate 'TaskStats' object is created and output is displayed. > Issues with org.apache.commons.pool2.performance. PerformanceTest > ----------------------------------------------------------------- > > Key: POOL-182 > URL: https://issues.apache.org/jira/browse/POOL-182 > Project: Commons Pool > Issue Type: Bug > Affects Versions: 2.0 > Reporter: Zoltan Farkas > Priority: Trivial > Attachments: PerformanceTest.patch > > Original Estimate: 4h > Remaining Estimate: 4h > > the use volatiles : waiting,complete,totalBorrowTime, totalReturnTime, > nrSamples > is not correct. > for ex the following totalBorrowTime += borrowTime is not atomic resulting > in a > race condition. > one way to fix this is using the java.util.concurent Atomic variants or even > better, > make these variables members of MyThread and aggregate them at the end of the > test, > this way there will be no need to use Atomic and thus increasing efficiency, > and > accuracy of the test of the test. > also: > private boolean start; > needs to be volatile, due to visibility issue. > (when updating start other threads might not pick up the value) -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira