Skip to content

Split list of awaiters in multi_producer_sequencer::add_awaiter #217

Open
@dvetutnev

Description

while (awaiters != nullptr)
{
	diff_t diff = TRAITS::difference(targetSequence, lastKnownPublished);
	if (diff > 0)
	{
		// Not yet ready.
		minDiff = diff < minDiff ? diff : minDiff;
		*awaitersToEnqueueTail = awaiters;
		awaitersToEnqueueTail = &awaiters->m_next;
		awaiters->m_lastKnownPublished = lastKnownPublished;
	}
	else
	{
		// Now ready.
		*awaitersToResumeTail = awaiters;
		awaitersToResumeTail = &awaiters->m_next;
	}
	awaiters = awaiters->m_next;
}

Maybe on line should be awaiters->m_targetSequence instead targetSequence?

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions