Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming.threads > #4086
| From | computer45 <computer45@cyber.com> |
|---|---|
| Newsgroups | comp.programming.threads |
| Subject | Re: Scalable reference counting with efficient support for weak references version 1.01 |
| Date | 2018-03-19 20:51 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <p8p7sk$fbm$3@dont-email.me> (permalink) |
| References | <p8p6jf$56g$4@dont-email.me> |
On 3/19/2018 8:29 PM, computer45 wrote:
> Hello...
>
> Scalable reference counting with efficient support for weak references
> version 1.01
>
> I have modified a little bit my scalable algorithm, now as you will
> notice i am not using decrement with support for antitokens in the
> balancers of the scalable counting networks, i am only using an
> "increment", please look at my new scalable algorithm inside the zip
> file, i think it is working correctly. Also notice that the returned
I mean _Release(), not _AddRef().
> value of _AddRef() method will be valid if it is equal to 0, please read
> also the following to understand better:
>
> Author: Amine Moulay Ramdane
>
> Description:
>
> This is my scalable reference counting with support for efficient weak
> references, and since problems that cannot be solved without weak
> references are rare, so this library does scalable very well, this
> scalable reference counting is implemented using scalable counting
> networks that eliminate completely false sharing , so it is fully
> scalable on multicore processors and manycore processors and this
> scalable algorithm is optimized, and this library does work on both
> Windows and Linux (x86), and it is easy to port to Mac OS X.
>
> Here is the parameters of the constructor:
>
> First parameter is: The width of the scalable counting networks that
> permits my scalable refererence counting algorithm to be scalable, this
> parameter must be 1 to 31, it is now at 4 , this is the power, so it is
> equal to 2 power 4 , that means 24=16, and you have to pass this
> counting networks width to the n of following formula:
>
> (n*log(n)*(1+log(n)))/4
>
> The log of the formula is in base 2
>
> This formula gives the number of gates of the scalable counting
> networks, and if we replace n by 16, this will equal 80 gates, that
> means you can scale the scalable counting networks to 80 cores, and
> beyond 80 cores you will start to have contention.
>
> Second parameter is: a boolean that tells if reference counting is used
> or not, it is by default to true, that means that reference counting is
> used.
>
> About the weak references support: the Weak<T> type supports assignment
> from and to T and makes it usable as if you had a variable of T. It has
> the IsAlive property to check if the reference is still valid and not a
> dangling pointer. The Target property can be used if you want access to
> members of the reference.
>
> Note: the use of the IsAlive property on our weak reference, this tells
> us whether the referenced object is still available, and provides a safe
> way to get a concrete reference to the parent.
>
> I have ported efficient weak references support to Linux by implementing
> efficient code hooking, look at my DSharp.Core.Detour.pas file for Linux
> that i have written to see how i have implemented it in the Linux
> library. Please look at the example.dpr and test.pas demos to see how
> weak references work etc.
>
> Call _AddRef() and _Release() methods to manually increment or decrement
> the number of references to the object.
>
> You can download my library for Windows and Linux from:
>
> https://sites.google.com/site/aminer68/scalable-reference-counting-with-efficient-support-for-weak-references
>
>
> - Platform: Windows and Linux(x86)
>
> Language: FPC Pascal v3.1.x+ / Delphi 2007+:
>
> http://www.freepascal.org/
>
> Required FPC switches: -O3 -Sd
>
> -Sd for delphi mode....
>
> Required Delphi switches: -$H+ -DDelphi
>
> For Delphi XE versions and Delphi Tokyo use the -DXE switch
>
> The defines options inside defines.inc are:
>
> {$DEFINE CPU32} for 32 bit systems
>
> {$DEFINE CPU64} for 64 bit systems
>
>
> Thank you,
> Amine Moulay Ramdane.
>
Back to comp.programming.threads | Previous | Next — Previous in thread | Find similar | Unroll thread
Scalable reference counting with efficient support for weak references version 1.01 computer45 <computer45@cyber.com> - 2018-03-19 20:29 -0400 Re: Scalable reference counting with efficient support for weak references version 1.01 computer45 <computer45@cyber.com> - 2018-03-19 20:51 -0400
csiph-web