Skip to content

Add multiple Channel implementations for different purposes. #103

Description

@Akshay-Srivatsan

We currently (since #97) have a generic multiple-producer multiple-consumer lockfree Channel, using cameron314/concurrentqueue (moodycamel). However, for certain tasks, we'd like to have slightly different queue implementations backing a Channel; e.g., a work-stealing-based Channel for the workers' work queues. Instead of patching in the necessary synchronization with atomics and locks on top of the existing Channel, we should have an interface IChannel with multiple implementations: LockFreeChannel, WorkStealingChannel, etc. The implementations should internally do whatever bookkeeping/synchronization they need to maintain thread-safety.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestoptimizationThis can be made more efficient

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions