Re: [libc-alpha] Re: PATCH: Fix ll/sc for mips
From: H . J . Lu <hidden>
Date: 2002-02-01 08:10:41
On Thu, Jan 31, 2002 at 08:02:25PM -0800, Kaz Kylheku wrote:
On Fri, 1 Feb 2002, Hiroyuki Machida wrote:quoted
Please note that "sc" may fail even if nobody write the variable. (See P.211 "8.4.2 Load-Linked/Sotre-Conditional" of "See MIPS RUN" for more detail.) So, after your patch applied, compare_and_swap() may fail, even if *p is equal to oldval.I can't think of anything that will break because of this, as long as the compare_and_swap eventually succeeds on some subsequent trial. If the atomic operation has to abort for some reason other than *p being unequal to oldval, that should be cool.
Maybe we should document it in glibc, something like compare_and_swap compares the contents of a variable with an old value. If the values are equal and a new value is stored in the variable atomically, 1 is returned; otherwise, 1 is returned. H.J.