Skip to content
This repository has been archived by the owner on Aug 5, 2023. It is now read-only.

Latest commit

 

History

History
59 lines (36 loc) · 1.54 KB

README.md

File metadata and controls

59 lines (36 loc) · 1.54 KB

What is it?

A concurrent, lock-free, ordered set data type based on skip lists (which in turn utilise atomicModifyIORef).

Status

Passes all QuickCheck test cases. Below are some performance measurements against Data.Set. p is the number of hardware threads passed to +RTS -N; t is the median time in seconds of executing each operation 100 times. These graphs were generated with graph-summary.py.

Absolute

insert contains delete

Scalability

insert contains delete

Installation

Assuming you have GHC already installed:

$ cabal configure --enable-tests
$ cabal build
$ cabal test
$ cabal install

Usage

import Data.Concurrent.OrderedSet

main = do
  oset <- fromList [1..3]
  delete 2 oset
  result <- toList oset
  putStrLn $ show result

License

BSD3

References