You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Mohit Soni (JIRA)" <ji...@apache.org> on 2011/02/23 18:58:38 UTC

[jira] Updated: (POOL-182) Issues with org.apache.commons.pool2.performance. PerformanceTest

     [ 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