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

A concurrent, lock-free, ordered set data type based on skip lists

License

Notifications You must be signed in to change notification settings

adaszko/concurrent-ordered-set

Repository files navigation

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

About

A concurrent, lock-free, ordered set data type based on skip lists

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published