Hello,
Here is my new variants of Scalable RWLocks that are powerful..
Author: Amine Moulay Ramdane
Description:
A fast, and scalable and starvation-free and fair and lightweight Multiple-Readers-Exclusive-Writer Lock called LW_RWLockX, the scalable LW_RWLockX does spin-wait, and also a fast and scalable and
starvation-free and fair Multiple-Readers-Exclusive-Writer Lock called
RWLockX, the scalable RWLockX doesn't spin-wait but uses my portable SemaMonitor and portable event objects , so it is energy efficient.
The parameter of the constructors is the size of the array of the
readers , so if the size of the array is equal to the number of parallel readers, so it will be scalable, but if the number of readers are
greater than the size of the array , you will start to have contention,
please look at the source code of my scalable algorithms to understand.
I have used my following hash function to make my new variants of
RWLocks scalable:
---
function DJB2aHash(key:int64):uint64;
var
i: integer;
key1:uint64;
begin
Result := 5381;
for i := 1 to 8 do
begin
key1:=(key shr ((i-1)*8)) and $00000000000000ff;
Result := ((Result shl 5) xor Result) xor key1;
end;
end;
---
You can download them from:
https://sites.google.com/site/scalable68/new-variants-of-scalable-rwlocks
Thank you,
Amine Moulay Ramdane.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)