You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Tim Ellison (JIRA)" <ji...@apache.org> on 2009/04/16 12:41:14 UTC
[jira] Closed: (HARMONY-6137) [drlvm][concurrent] AtomicLong
compare and swap returning wrong indicator
[ https://issues.apache.org/jira/browse/HARMONY-6137?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tim Ellison closed HARMONY-6137.
--------------------------------
> [drlvm][concurrent] AtomicLong compare and swap returning wrong indicator
> -------------------------------------------------------------------------
>
> Key: HARMONY-6137
> URL: https://issues.apache.org/jira/browse/HARMONY-6137
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Linux, r761319
> Reporter: Tim Ellison
> Fix For: 5.0M9
>
> Attachments: 0001-add-memory-to-clobber-list-for-port_atomic_cas64.patch
>
>
> Consider the following code that exercises AtomLong compare and swap operations:
> AtomicLong atomLong = new AtomicLong(1);
> System.out.println(atomLong.get());
> System.out.println("CAS 1,-4 = " + atomLong.compareAndSet(1, -4));
> System.out.println(atomLong.get());
> System.out.println("CAS -5,1 = " + atomLong.compareAndSet(-5, 1));
> System.out.println(atomLong.get());
> I expect it to print out:
> 1
> CAS 1,-4 = true
> -4
> CAS -5,1 = false
> -4
> Since the comparison of --4 and -5 fails.
> However when running that code on harmony r761319 I see
> 1
> CAS 1,-4 = true
> -4
> CAS -5,1 = true
> -4
> i.e. the swap is not done, but the method returned true as though it had done the swap.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.