| 450 | } |
| 451 | |
| 452 | BufferPool::Page* BufferPool::Client::CreatePinnedPage(BufferHandle&& buffer) { |
| 453 | Page* page = new Page(this, buffer.len()); |
| 454 | page->buffer = move(buffer); |
| 455 | page->pin_count = 1; |
| 456 | |
| 457 | std::lock_guard<std::mutex> lock(lock_); |
| 458 | // The buffer is transferred to the page so will be accounted for in |
| 459 | // pinned_pages_.bytes() instead of buffers_allocated_bytes_. |
| 460 | buffers_allocated_bytes_ -= page->len; |
| 461 | pinned_pages_.Enqueue(page); |
| 462 | ++num_pages_; |
| 463 | DCHECK_CONSISTENCY(); |
| 464 | return page; |
| 465 | } |
| 466 | |
| 467 | void BufferPool::Client::DestroyPageInternal( |
| 468 | PageHandle* handle, BufferHandle* out_buffer) { |
no test coverage detected