loony icon indicating copy to clipboard operation
loony copied to clipboard

A high throughput MPMC lock-free queue based on a paper by Giersch, Nolte et al implemented in pure Nim.

Results 10 loony issues
Sort by recently updated
recently updated
newest added

Hi, i see SIGSEGV on calls to `queue.isEmpty`. The queue is initialized using `newLoonyQueue`. It has not received any items yet. I tried `if`- and `while` - makes no difference....

I've refactored the library to stop using the std/atomics because it was very restrictive. Pros: std/atomics restriction on the types allowed for its operations to work has been removed Cons:...

The consumers are the slowest set of operations. A single consumer loonyqueue would be drastically faster for MPSC situation. I have implemented a version of the LoonyQueueSC, however there is...

Added `loonyPadding` compiler option which would just padd each loony field onto a cache line of its own. In my benchmarks I couldn't really see a difference, will need to...

Implements len proc (tested outside of test suite) Removes utils/futex and introduces dependency on externally maintained futexes library.

Thread analyzer determines the [deallocshared](https://github.com/nim-lang/Nim/blob/e3b19cbe52e0578de315d259fbb066bfe991a60f/lib/system/threads.nim#L185) proc called by a thread on completion is a data-race. Atm only solution I can come up with involves changing or providing a modified std...

nim std lib issue

Refactor all these alias types like TagPtr to use a distinct type with converters to avoid boilerplate spaghetti as per disruptek

chore

Orc crashes when a Continuation (or any ref object) passed through the queue reaches the end of its life span and the final `=destroy` is run. This is evident by...

bug
wontfix

Using a slightly modified example code for more consumer threads my system throws SIGSEGV error. ```nim import std/[locks, os, atomics] import loony type Message = ref object value: string let...