On Tuesday, May 17, 2011 10:34:41 am Andriy Gapon wrote: > on 17/05/2011 16:58 John Baldwin said the following: > > No, it doesn't quite work that way. It wouldn't work on Alpha for example. > > > > All load_acq is a load with a memory barrier to order other loads after it. > > It is still free to load stale data. Only a read-modify-write operation > > would actually block until it could access an up-to-date value. > > Hmm, ok. > How about atomic_add_acq_int(&smp_rv_waiters[0], 0) ? :-) > Or an equivalent MI action that doesn't actually change smp_rv_waiters[0] > value, > if there could be any. > Maybe explicit atomic_cmpset_acq_int(&smp_rv_waiters[0], 0, 0) ? > > You see at what I am getting?
Yeah, either of those would work. At this point just leaving the atomic_add_int() as-is would be the smallest diff. :) -- John Baldwin _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"