Better to set up a return value pointing at entry.data and have all code paths finishing through the same "release lock, return value" logic?