use gcc atomic operations