package shared-block-ring
A single-consumer single-producer queue on a block device
Install
Dune Dependency
Authors
Maintainers
Sources
shared-block-ring-3.0.0.tbz
sha256=e8fc63805afee9d3a7f954edcea9faff8b990ae3f616ebd6ef87fd42624873ec
sha512=3d2d75c9b1cad3031de9ba6aa7e1ba2fa5e0040f25bbdb95fd5192ddf3fc1d6659e806dcc53e0eb7c78ef64dec6ceca63686e8d5c79c3a5379e66d977973de19
Description
This is a simple queue containing variable-length items stored on a disk, in the style of Xen shared-memory-ring.
README
shared-block-ring
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.
Dependencies (21)
- sexplib0
- sexplib
- rresult
- result
-
ppx_sexp_conv
>= "v0.12.0"
- ppx_cstruct
- mirage-time-unix
-
mirage-time
>= "2.0.1"
-
mirage-clock
>= "3.0.0"
-
mirage-block-unix
< "2.13.0"
-
mirage-block
>= "2.0.1"
- lwt_log
- lwt
- logs
-
io-page-unix
>= "2.0.0"
- io-page
- duration
-
dune
>= "2.7.0"
-
cstruct
>= "3.0.0"
- cmdliner
-
ocaml
>= "4.06.0"
Dev Dependencies (4)
-
conf-libev
with-test
-
ounit2
with-test
-
mirage-clock-unix
with-test
-
bisect_ppx
dev & >= "2.5.0"
Used by (1)
-
message-switch
>= "1.4.0"
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page