package shared-block-ring

  1. Overview
  2. Docs
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.

Tags

org:mirage org:xapi-project

Published: 15 May 2021

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.

Dev Dependencies (4)

  1. conf-libev with-test
  2. ounit2 with-test
  3. mirage-clock-unix with-test
  4. bisect_ppx dev & >= "2.5.0"

Used by (1)

  1. message-switch >= "1.4.0"

Conflicts

None