avoid double-persistence race condition