concurrent-hashtable: Thread-safe hash tables for multi-cores!

[ bsd3, concurrency, library ] [ Propose Tags ]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8
Change log ChangeLog.md
Dependencies async (>=2.2.2 && <3), atomic-primops (>=0.8.3 && <2), base (>=4.7 && <5), hashable (>=1.2.7.0 && <2), random (>=1.1 && <2), stm (>=2.4.5.1 && <3), vector (>=0.12.0.3 && <1) [details]
License BSD-3-Clause
Copyright 2019 Peter Robinson
Author Peter Robinson
Maintainer pwr@lowerbound.io
Category Concurrency
Home page https://github.com/pwrobinson/concurrent-hashtable#readme
Bug tracker https://github.com/pwrobinson/concurrent-hashtable/issues
Source repo head: git clone https://github.com/pwrobinson/concurrent-hashtable
Uploaded by PeterRobinson at 2019-10-28T12:03:58Z
Distributions
Downloads 3412 total (13 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-10-28 [all 1 reports]

Readme for concurrent-hashtable-0.1.8

[back to package description]

A thread-safe hash table for multi-cores

You can find benchmarks and more information about the internals of this package here.

Installation

stack install

Usage Example

> ht <- newWithDefaults 4     -- creates hash table of initial size 4
> insert ht 1 "hello"         -- adds key-value pair (1,"hello")
> insert ht 2 "world"         -- adds key-value pair (2,"world")
> atomically $ readAssocs ht  -- convert to a key-value list
 [(1,"hello"),(2,"world")]
> readSizeIO ht               -- returns 4
> insert ht 3 "!"             -- adds key-value pair (3,"!") and triggers a resize as the load fraction is ≥ 0.75
> readSizeIO ht               -- returns 8
> atomically $ readAssocs ht  -- convert to a key-value list
 [(1,"hello"),(3,"!"),(2,"world")]