NFC: remote queue domestication plumbing

These are, at present, just identity functions in the right places.
This commit is contained in:
Nathaniel Wesley Filardo
2021-09-15 00:05:16 +01:00
committed by Nathaniel Wesley Filardo
parent d4c120dfe5
commit 94ab856ff5
2 changed files with 5 additions and 4 deletions

View File

@@ -421,13 +421,15 @@ namespace snmalloc
handle_message_queue_inner(Action action, Args... args)
{
bool need_post = false;
auto domesticate = [](FreeObject::QueuePtr<capptr::bounds::Alloc> p)
SNMALLOC_FAST_PATH_LAMBDA { return p; };
for (size_t i = 0; i < REMOTE_BATCH; i++)
{
auto p = message_queue().peek();
auto& entry = SharedStateHandle::Pagemap::get_metaentry(
backend_state_ptr(), snmalloc::address_cast(p));
auto r = message_queue().dequeue(key_global);
auto r = message_queue().dequeue(key_global, domesticate);
if (unlikely(!r.second))
break;

View File

@@ -102,13 +102,12 @@ namespace snmalloc
/**
* Returns the front message, or null if not possible to return a message.
*/
template<typename Domesticator>
std::pair<
FreeObject::HeadPtr<capptr::bounds::Alloc, capptr::bounds::Alloc>,
bool>
dequeue(const FreeListKey& key)
dequeue(const FreeListKey& key, Domesticator domesticate)
{
auto domesticate = [](FreeObject::QueuePtr<capptr::bounds::Alloc> p)
SNMALLOC_FAST_PATH_LAMBDA { return p; };
invariant();
FreeObject::HeadPtr<capptr::bounds::Alloc, capptr::bounds::Alloc> first =
domesticate(front);