mpsc
MPSC is an implementation of a multi-producer/single-consumer channel. This is useful if you only ever consume a channel from within a single fiber.
MPSC channels are unbounded. Calling send
will never block.
Note: This shard is not suitable for consuming the same channel from multiple fibers, even if they don't consume it concurrently. Once you call receive
from a fiber, the receiving end of the channel is locked to that fiber.
Installation
-
Add the dependency to your
shard.yml
:dependencies: mpsc: github: jgaskins/mpsc
-
Run
shards install
Usage
require "mpsc"
channel = MPSC::Channel(String).new
spawn channel.send "hello"
channel.receive # "hello"
Contributing
- Fork it (https://github.com/jgaskins/mpsc/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Reformat the code (
crystal tool format .
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Jamie Gaskins - creator and maintainer