#get/#set have 'volatile' semantics when compiled on Mac OS X
#swap also has 'volatile' semantics