obtain a shared lock before reading

shared locks can be released at any time. In addition, locking is