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