Hello,
Lockfree bounded LIFO stack and FIFO queue is here,
you can port the algorithms to C++..
Description:
A fast Lockfree FIFO queue and a fast Lockfree LIFO Stack, they are
bounded, the Lockfree FIFO queue was correct and enhanced by Amine
Moulay Ramdane.
Read the following paper:
https://arxiv.org/pdf/1311.3200.pdf
This paper suggests a simple solution to this problem. We show that, for
a large class of lock- free algorithms, under scheduling conditions
which approximate those found in commercial hardware architectures,
lock-free algorithms behave as if they are wait-free. In other words,
programmers can keep on designing simple lock-free algorithms instead of
complex wait-free ones, and in practice, they will get wait-free
progress. It says on the Analysis of the Class SCU(q, s):
"Given an algorithm in SCU(q, s) on k correct processes under a uniform
stochastic scheduler, the system latency is O(q + s*sqrt(k), and the
individual latency is O(k(q + s*sqrt(k))."
So i think lockfree algorithms are very interesting to work with.
The size of the queue must be passed to the constructor and it must be
the power of 2.
You can download them from:
https://sites.google.com/site/aminer68/lockfree-bounded-stack-and-queue
Language: FPC Pascal v2.2.0+ / Delphi 7+:
http://www.freepascal.org/
Operating Systems: Windows, Mac OSX , Linux on (x86)...
Required FPC switches: -O3 -Sd
-Sd for delphi mode....
Required Delphi switches: -$H+
{$DEFINE CPU32} and {$DEFINE Windows32} for 32 bit systems
{$DEFINE CPU64} and {$DEFINE Windows64} for 64 bit systems
Thank you,
Amine Moulay Ramdane.