avoid waiting read lock when already acquired write lock