is it a bug of /glibc/sysdeps/arm/atomicity.h ?

Daniel Jacobowitz drow@mvista.com
Mon Feb 17 15:49:00 GMT 2003


On Mon, Feb 17, 2003 at 05:25:48PM +0800, Hu, Boris wrote:
> In /glibc/sysdeps/arm/atomicity.h

> let us consider the following scenario. Suppose there are three thread
> pathes. 
> Init:   *p = 0
> T1 compare_and_swap(p, 0, 1) ; 
> T2 compare_and_swap(p,0,1); 
> T3 compare_and_swap(p,1,2);

Yes, that function is not actually atomic.  If you search the mailing
list archives for gcc@gcc.gnu.org you'll find several possible fixes;
no one's done any of them.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer



More information about the Libc-alpha mailing list