On Wed, Sep 3, 2008 at 3:06 AM, Anton Blanchard <[EMAIL PROTECTED]> wrote: > unlock looks good, but lock has both release and acquire barriers. Even > worse, the release barrier is a heavyweight sync which is very slow. > Looking at the gcc documentation, sync_lock_test_and_set only needs an > aquire barrier: > >> sync_lock_test_and_set > ... >> This pattern must issue any memory barrier instructions such that the >> pattern as a whole acts as an acquire barrier, that is all memory >> operations after the pattern do not occur until the lock is acquired.
Richard, Why does the GCC alpha port emit a memory barrier at the beginning of the test_and_set sync builtin sequence, which seems to be more than the required `acquire' semantics? Thanks, David