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