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.1.tbz
sha256=cf2ad61fbbf598f2aa6cb85fbea2e554a0a1fdaaadb0c8161eccbaa1910f3b83
sha512=274c9edaf7cc9bec72afd50f366bdc7287e354485649b5c29a9c4441356e222592573b31e2b5e3e28d98253d6303a77b8c353a3345d2664e5795ae35075f9b9c
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 (20)
- sexplib0
- sexplib
- rresult
- result
-
ppx_sexp_conv
>= "v0.10.0"
- ppx_cstruct
- mirage-time-unix
-
mirage-time
>= "2.0.1"
-
mirage-clock
>= "3.0.0"
-
mirage-block-unix
>= "2.13.0"
-
mirage-block
>= "3.0.0"
- lwt_log
- lwt
- logs
-
io-page
>= "2.4.0"
- duration
-
dune
>= "2.7.0"
-
cstruct
>= "6.0.0"
-
cmdliner
>= "1.1.0"
-
ocaml
>= "4.06.0"
Dev Dependencies (3)
-
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