| 254 | } |
| 255 | |
| 256 | void BufferPool::FreeBuffer(ClientHandle* client, BufferHandle* handle) { |
| 257 | if (!handle->is_open()) return; // Should be idempotent. |
| 258 | DCHECK_EQ(client, handle->client_); |
| 259 | int64_t len = handle->len_; |
| 260 | allocator_->Free(move(*handle)); |
| 261 | client->impl_->FreedBuffer(len); |
| 262 | } |
| 263 | |
| 264 | Status BufferPool::TransferBuffer(ClientHandle* src_client, BufferHandle* src, |
| 265 | ClientHandle* dst_client, BufferHandle* dst) { |