README.md
3d23ccc3
 <!-- [comment]: <> (DO NOT EDIT THIS FILE. EDIT THE TEMPLATE "templates/README.md.scion") -->
79616338
 # mulle-concurrent
5bac158c
 
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)
 
 
188d0702
 Fork      |  Build Status | Release Version
 ----------|---------------|-----------------------------------
 [Mulle kybernetiK](//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) | ![Mulle kybernetiK tag](https://img.shields.io/github/tag/mulle-nat/mulle-concurrent.svg) [![Build Status](https://travis-ci.org/mulle-nat/mulle-concurrent.svg?branch=release)](https://travis-ci.org/mulle-nat/mulle-concurrent)
 [Community](https://github.com/mulle-objc/mulle-concurrent/tree/release) | [![Build Status](https://travis-ci.org/mulle-objc/mulle-concurrent.svg)](https://travis-ci.org/mulle-objc/mulle-concurrent) | ![Community tag](https://img.shields.io/github/tag/mulle-objc/mulle-concurrent.svg) [![Build Status](https://travis-ci.org/mulle-objc/mulle-concurrent.svg?branch=release)](https://travis-ci.org/mulle-objc/mulle-concurrent)
 
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)
188d0702
 [`mulle_concurrent_pointerarray`](dox/API_HASHMAP.md) | A growing array of pointers                                                               | [Example](tests/array/example.c)
c3885d73
 
 
79616338
 ## Install
5bac158c
 
79616338
 On OS X and Linux you can use
 [homebrew](//brew.sh), respectively
 [linuxbrew](//linuxbrew.sh)
 to install the library:
5bac158c
 
 ```
656491b5
 brew install mulle-objc/softwaremulle-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
 ```
b604dc0d
 mulle-install --prefix /usr/local --branch release https://github.com/mulle-objc/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
aed169fe
 [mulle-c11](//www.mulle-kybernetik.com/software/git/mulle-c11/) and
79616338
 [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
e7906057
 [Codeon GmbH](//www.codeon.de)