Comments (1)
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)
- Reconsider using bin-name+network-address as the Unique ID HOT 4
- Pass DOWNLOAD_EXTRACT_TIMESTAMP option or set the CMP0135 policy
- Add Counters to Actions and Receivers HOT 1
- The blinky link broken in samples/README.md HOT 1
- Hierarchical Transitions HOT 3
- Add Macros for Testability HOT 1
- Transition After Action HOT 2
- Rename master to main HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wink.