| 208 | // to use the exclusive_guard. |
| 209 | |
| 210 | Result<int64_t> ReadAt(int64_t position, int64_t nbytes, void* out) final { |
| 211 | auto guard = lock_.shared_guard(); |
| 212 | return derived()->DoReadAt(position, nbytes, out); |
| 213 | } |
| 214 | |
| 215 | Result<std::shared_ptr<Buffer>> ReadAt(int64_t position, int64_t nbytes) final { |
| 216 | auto guard = lock_.shared_guard(); |