Should pass opts to lock() when invoked from with_lock()