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.