shared-block-ring
A single-consumer single-producer queue on a block device
README
A simple on-disk fixed length queue in the style of the
Xen shared-memory-ring.
In particular the producer and consumer APIs allow clients to control
exactly when data is exposed to the consumer and removed from the queue.
Example usage
First create a "block device"-- any file will do:
dd if=/dev/zero of=test.raw bs=10240 count=1
Then initialise the ring in the file:
./main.native create
Then start two shells, in one run:
./main.native produce
and in the other
./main.native consume
The producer takes input from stdin and puts it onto the ring, and the consumer takes entries from the ring and prints them to stdout.
Install
- Published
-
15 May 2021
- Maintainers
-
Sources
shared-block-ring-3.0.0.tbz
sha256=e8fc63805afee9d3a7f954edcea9faff8b990ae3f616ebd6ef87fd42624873ec
sha512=3d2d75c9b1cad3031de9ba6aa7e1ba2fa5e0040f25bbdb95fd5192ddf3fc1d6659e806dcc53e0eb7c78ef64dec6ceca63686e8d5c79c3a5379e66d977973de19
Dependencies
conf-libev
with-test
ppx_sexp_conv
>= "v0.12.0"
ounit2
with-test
mirage-time
>= "2.0.1"
mirage-clock-unix
with-test
mirage-clock
>= "3.0.0"
mirage-block-unix
< "2.13.0"
mirage-block
>= "2.0.1"
io-page-unix
>= "2.0.0"
dune
>= "2.7.0"
cstruct
>= "3.0.0"
bisect_ppx
dev & >= "2.5.0"
ocaml
>= "4.06.0"
Reverse Dependencies
message-switch
>= "1.4.0"