README.md
79616338
 # mulle-concurrent
5bac158c
 
ea015822
 Release on [github](//github.com/mulle-nat/mulle-concurrent): [![Build Status](https://travis-ci.org/mulle-nat/mulle-concurrent.svg?branch=release)](https://travis-ci.org/mulle-nat/mulle-concurrent)
 
 
137f2f12
 **mulle-concurrent** is a library for lock- and wait-free data structures.
 Wait-freeness is a desirable property for "hotly" contested data structures
 in multi-threaded environments.
5bac158c
 
ea015822
 > Many of the ideas are taken from [Preshing on Programming: A Resizable, Concurrent Map](http://preshing.com/20160222/a-resizable-concurrent-map/).
 > The definition of concurrent and wait-free are from [concurrencyfreaks.blogspot.de](http://concurrencyfreaks.blogspot.de/2013/05/lock-free-and-wait-free-definition-and.html)
 
 
5bac158c
 
79616338
 ## Data structures
5bac158c
 
9cd3ffbd
 API                                                   | Description    | Example
 ------------------------------------------------------|----------------|---------
 [`mulle_concurrent_hashmap`](dox/API_POINTERARRAY.md) | A growing, mutable map of pointers, indexed by a hash. A.k.a. hashtable, dictionary, maptable | [Example](tests/hashmap/example.c)
 [`mulle_concurrent_pointerarray`](dox/API_HASHMAP.md) | A growing array of pointers                                                                   | [Example](tests/array/example.c)
5bac158c
 
 
79616338
 ## Install
5bac158c
 
79616338
 On OS X and Linux you can use
 [homebrew](//brew.sh), respectively
 [linuxbrew](//linuxbrew.sh)
 to install the library:
5bac158c
 
 ```
79616338
 brew tap mulle-kybernetik/software
 brew install mulle-concurrent
5bac158c
 ```
d652e075
 
79616338
 On other platforms you can use **mulle-install** from
 [mulle-build](//www.mulle-kybernetik.com/software/git/mulle-build)
 to install the library:
5bac158c
 
79616338
 ```
 mulle-install --prefix /usr/local --branch release https://www.mulle-kybernetik.com/repositories/mulle-concurrent
5bac158c
 ```
 
79616338
 Otherwise read:
85b49daa
 
79616338
 * [How to Build](dox/BUILD.md)
85b49daa
 
 
79616338
 ### Platforms and Compilers
5bac158c
 
79616338
 All platforms and compilers supported by
 [mulle-c11](//www.mulle-kybernetik.com/software/git/mulle-c11/) and
 [mulle-thread](//www.mulle-kybernetik.com/software/git/mulle-thread/).
5bac158c
 
 
79616338
 ## Author
5bac158c
 
79616338
 [Nat!](//www.mulle-kybernetik.com/weblog) for
 [Mulle kybernetiK](//www.mulle-kybernetik.com) and
 [Codeon GmbH](//www.codeon.de)