Giter Site home page Giter Site logo

Comments (1)

winksaville avatar winksaville commented on July 19, 2024

Connection features:

  • Sending is always non-blocking
  • Sending should take roughly constant time
  • Sending does not mean message will be received
  • Lossless except on disconnect
  • Notify sender & receiver on disconnect
  • Ordered between a sender / receiver pair.

Related features:

  • Actors can choose to share a thread with other actors if they guarantee they don't block.
  • Actors can choose to not share a thread.

For connections with in a process and potentially between processes the above features are possible using a queue based on linked lists although there needs to be space for link(s) in the message.

In addition, an instance of this connection should be usable as a front and back end for a connection across an appropriate network protocol.

Multiple Producer Single Consumer or MP Multiple Consumer (MPSC or MPMC) linked list queues are a solution.

Rust crossbeam_channel is a start:
https://docs.rs/crossbeam-channel/latest/crossbeam_channel/

C++:
https://www.google.com/search?q=c%2B%2B+unbounded+mpsc+or+mpmc+queue

from wink.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.