./devel/hs-unagi-chan, Fast concurrent queues with a Chan-like API, and more

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.4.1.4nb1, Package name: hs-unagi-chan-0.4.1.4nb1, Maintainer: pkgsrc-users

This library provides implementations of concurrent FIFO queues (for both
general boxed and primitive unboxed values) that are fast, perform well
under contention, and offer a Chan-like interface. The library may be of
limited usefulness outside of x86 architectures where the fetch-and-add
instruction is not available.

We export several variations of our design; some support additional
functionality while others try for lower latency by removing features or
making them more restrictive (e.g. in the Unboxed variants).

* Unagi: a general-purpose near drop-in replacement for Chan.
* Unagi.Unboxed: like Unagi but specialized for primitive types; this may
perform better if a queue grows very large.
* Unagi.Bounded: a bounded variant with blocking and non-blocking writes,
and other functionality where a notion of the queue's capacity is
required.
* Unagi.NoBlocking: lowest latency implementations for when blocking reads
aren't required.
* Unagi.NoBlocking.Unboxed: like Unagi.NoBlocking but for primitive types.


Master sites:

Filesize: 51.317 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-02 07:37:49 by Masatake Daimon | Files touched by this commit (1141)
Log message:
Revbump all Haskell after updating lang/ghc96
   2023-10-31 17:29:34 by Masatake Daimon | Files touched by this commit (5)
Log message:
devel/hs-unagi-chan: import hs-unagi-chan-0.4.1.4

This library provides implementations of concurrent FIFO queues (for both
general boxed and primitive unboxed values) that are fast, perform well
under contention, and offer a Chan-like interface. The library may be of
limited usefulness outside of x86 architectures where the fetch-and-add
instruction is not available.

We export several variations of our design; some support additional
functionality while others try for lower latency by removing features or
making them more restrictive (e.g. in the Unboxed variants).

* Unagi: a general-purpose near drop-in replacement for Chan.
* Unagi.Unboxed: like Unagi but specialized for primitive types; this may
  perform better if a queue grows very large.
* Unagi.Bounded: a bounded variant with blocking and non-blocking writes,
  and other functionality where a notion of the queue's capacity is
  required.
* Unagi.NoBlocking: lowest latency implementations for when blocking reads
  aren't required.
* Unagi.NoBlocking.Unboxed: like Unagi.NoBlocking but for primitive types.