Remove unnecessary memory barriers
Remove unnecessary memory barriers

We don't need a memory barrier right after atomic::compare_and_swap
since that already is a memory barrier in itself. We also need the
barrier for unlocking it.

Worse case that could happen when unlocking is that due to out of
order reads we see the unlock one lock iteration later. Taking this
hit occasionally is cheaper than always taking a memory barrier hit
on each unlock.

jemc/rubinius,kachick/rubinius,pH14/rubinius,slawosz/rubinius,mlarraz/rubinius,travis-repos/rubinius,slawosz/rubinius,heftig/rubinius,heftig/rubinius,lgierth/rubinius,pH14/rubinius,digitalextremist/rubinius,jsyeo/rubinius,Azizou/rubinius,Azizou/rubinius,Wirachmat/rubinius,Wirachmat/rubinius,Azizou/rubinius,travis-repos/rubinius,ngpestelos/rubinius,Wirachmat/rubinius,jsyeo/rubinius,Wirachmat/rubinius,lgierth/rubinius,ngpestelos/rubinius,sferik/rubinius,dblock/rubinius,jemc/rubinius,Azizou/rubinius,pH14/rubinius,lgierth/rubinius,Wirachmat/rubinius,ruipserra/rubinius,sferik/rubinius,kachick/rubinius,Wirachmat/rubinius,Wirachmat/rubinius,slawosz/rubinius,jemc/rubinius,slawosz/rubinius,digitalextremist/rubinius,dblock/rubinius,heftig/rubinius,sferik/rubinius,mlarraz/rubinius,Azizou/rubinius,kachick/rubinius,kachick/rubinius,benlovell/rubinius,benlovell/rubinius,digitalextremist/rubinius,mlarraz/rubinius,kachick/rubinius,ruipserra/rubinius,travis-repos/rubinius,ngpestelos/rubinius,lgierth/rubinius,mlarraz/rubinius,lgierth/rubinius,jemc/rubinius,jsyeo/rubinius,Azizou/rubinius,dblock/rubinius,slawosz/rubinius,ngpestelos/rubinius,travis-repos/rubinius,ruipserra/rubinius,pH14/rubinius,ngpestelos/rubinius,digitalextremist/rubinius,sferik/rubinius,digitalextremist/rubinius,kachick/rubinius,mlarraz/rubinius,heftig/rubinius,heftig/rubinius,jsyeo/rubinius,heftig/rubinius,benlovell/rubinius,sferik/rubinius,dblock/rubinius,pH14/rubinius,jemc/rubinius,pH14/rubinius,pH14/rubinius,travis-repos/rubinius,Azizou/rubinius,lgierth/rubinius,dblock/rubinius,kachick/rubinius,mlarraz/rubinius,travis-repos/rubinius,ruipserra/rubinius,jsyeo/rubinius,ruipserra/rubinius,dblock/rubinius,ngpestelos/rubinius,mlarraz/rubinius,benlovell/rubinius,jsyeo/rubinius,slawosz/rubinius,ruipserra/rubinius,dblock/rubinius,sferik/rubinius,lgierth/rubinius,jsyeo/rubinius,benlovell/rubinius,travis-repos/rubinius,heftig/rubinius,ngpestelos/rubinius,benlovell/rubinius,jemc/rubinius,sferik/rubinius,slawosz/rubinius,kachick/rubinius,digitalextremist/rubinius,jemc/rubinius,benlovell/rubinius,ruipserra/rubinius,digitalextremist/rubinius