NFC: remote queue domestication plumbing
These are, at present, just identity functions in the right places.
This commit is contained in:
committed by
Nathaniel Wesley Filardo
parent
d4c120dfe5
commit
94ab856ff5
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user