gabbla / Queue

A small thread-safe queue written in C

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Queue
- thread-safe
- ability to define max number of elements
- sort elements into queue
- get in O(1), except when filtered (worst case O(n))
- put in O(1) when unsorted, in O(n) in the worst case when sorted
- MIT license (windows support relies on LGPL licensed pthreads-win32 (http://sourceware.org/pthreads-win32/))

sorted queue:
  your elements in the queue will be ordered according to the sort function which is given.

Build steps:
- mkdir build && cd build
- cmake ..
- make / build VS project under windows

Building 32-/64-bit:
- OS X: universal binaries are built
- Linux: use 'cmake -DBUILT_32=ON ..' to force 32-bit built, -DBUILT_64=ON for 64-bit
- Windows: use 'cmake -G "Visual Studio 11 Win64" -DBUILT_64=ON ..' to force a 64-bit build, 'cmake -G "Visual Studio 11" -DBUILT_32=ON ..' for 32-bit

TODO:
- proper test suite, so that everybody can easily see whats tested and run the tests himself
- ability to turn of element counting => only unlimited queue
- function to peek at next element

error codes:
 < 0 => error
 = 0 => okay

 0 - everything alright

-1 - invalid queue
-2 - could not acquire lock
-3 - could not allocate memory
-4 - no new data allowed
-5 - invalid element in queue
-6 - invalid callback
-7 - max_elements reached or no elements in queue

About

A small thread-safe queue written in C

License:MIT License


Languages

Language:C 62.6%Language:C++ 29.4%Language:CMake 8.1%