use memory barrier for read lock