https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239520
--- Comment #2 from Baggio Kwok <[email protected]> --- 1. atomic_fetchadd_long returns previous value, so I think /usr/src/lib/libc/locale/xlocale_private.h:184 should check for count == 0? 2. looks like atomic_fetchadd_long is expecting u_long which is unsigned, would passing -1 in /usr/src/lib/libc/locale/xlocale_private.h:183 works as we expected? __________________________________________________ sys/amd64/include/atomic.h 241 /* 242 * Atomically add the value of v to the long integer pointed to by p and return 243 * the previous value of *p. 244 */ 245 static __inline u_long 246 atomic_fetchadd_long(volatile u_long *p, u_long v) 247 { 248 249 __asm __volatile( 250 " " MPLOCKED " " 251 " xaddq %0,%1 ; " 252 "# atomic_fetchadd_long" 253 : "+r" (v), /* 0 */ 254 "+m" (*p) /* 1 */ 255 : : "cc"); 256 return (v); 257 } -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "[email protected]"
