Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 23 Nov 2014 11:38:50 -0500
From: Rich Felker <>
Subject: Re: [PATCH] Add stdatomic.h for clang>=3.1 and gcc>=4.1

On Sun, Nov 23, 2014 at 05:29:03PM +0100, Jens Gustedt wrote:
> > > For the discussion about the second case for the type, this is the
> > > question if there are archs that implement TAS operations with other
> > > values than 0 for "unset" and 1 for "set". There seem to be archs out
> > > there that implement TAS with other values, I vaguely remember having
> > > heard about some risk arch (??). Actually this also is the reason why
> > > the standard defines this type in such a weird manner, and why per the
> > > standard it needs a dedicated initialization macro, default
> > > initialization with 0 doesn't do in all cases.
> > 
> > These are not archs we can support with musl, so they wouldn't be
> > relevant. And they're not archs that could support POSIX without a
> > kernel stop-the-world approach for implementing CAS, or syscalls for
> > every synchronization action.
> Could you be more specific? Is it that you know that all the arch in
> question and conclude about their behavior from you knowledge about
> them?
> Without more specific information I don't see any reason, that an arch
> that has such specialized super-fast TAS with weird values couldn't
> have a CAS that behaves "normal". But then I also don't see any reason
> for such a TAS design in any case ...

If you have a CAS, you don't use the broken TAS to implement TAS. You
just use the CAS.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.