[fpc-devel] Re: systemh.inc InterLockedIncrement64 (var Target: int64)
Florian Klämpfl
florian at freepascal.org
Wed Oct 27 23:14:43 CEST 2010
Am 27.10.2010 22:52, schrieb Andrew Brunner:
> My SCS project which is a scalable unified collaboration and
> communication server that uses counting for transactions and network
> consumption across all implemented protocols. Bytes, when aggregated
> can clearly exceed the 2GB limitation within seconds. Partial
> transactions (PTX) can exceed over 30,000 per second and full
> transactions (TX) are typically 50% of that... But these numbers need
> to add up. Meaning the aggregate TX count must be of some proportion
> of the PTX otherwise they are bogus.
>
> Int64 or QWord w/o locking or CAS is a serious issue for me. I
> absolutely need this feature or my transaction/byte counts will be off
> per node per cluster and can lead to misinformation in the consumption
> reports.
>
> For the time being though I can restrict the scale on i386
> architecture since I tried to re-map the methods in the system.inc
> file to no avail. It appears that FPC does not include the
> Interlocked*64 methods inside the RTL.
I propose to add the 64 bit CAS for all 32 bit archs (if available): the
64 bit CAS instruction on a 32 bit target makes makes a lot "lock-free"
algorithms simpler.
So you can build your 64 bit interlockedincrement yourself (there is no
native on any 32 bit target I'am aware of).
More information about the fpc-devel
mailing list