Concurrent FIFO queue 2
A fast concurrent FIFO queue and a fast concurrent priority FIFO queue using the two locks algorithm version 1.47, they are array based and bounded.
Authors: Amine Moulay Ramdane
Email: aminer@videotron.ca
Description:
A fast concurrent FIFO queue and a fast concurrent priority FIFO queue that satisfy many requirements: They are FIFO fair, they minimize efficiently the cache-coherence traffic and they are energy efficient on the pop() side when you set the wait parameter to true in the constructor: when there is no items in the queue they will not spin-wait , but they will block wait on my SemaMonitor.
The size of the queue must be passed to the constructor and it must be a power of 2.
You can go to download the zip files by clicking on the following web link:
https://drive.google.com/drive/folders/13vWFC8HL5Z08CqFrCFJdf-l8H5dqCbz7?usp=sharing
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+ -DDelphi
For Delphi XE-XE7 use the -DXE switch
{$DEFINE CPU32} and {$DEFINE Windows32} for 32 bit systems
{$DEFINE CPU64} and {$DEFINE Windows64} for 64 bit systems