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.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.

Tags

org:mirage org:xapi-project

Published: 16 Apr 2022

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 (3)

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

Used by (1)

  1. message-switch >= "1.4.0"

Conflicts

None