Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming.threads > #4090

I have to prove my scalable reference counting algorithm

Path csiph.com!eternal-september.org!feeder.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From computer45 <computer45@cyber.com>
Newsgroups comp.programming.threads
Subject I have to prove my scalable reference counting algorithm
Date Mon, 19 Mar 2018 23:19:10 -0400
Organization A noiseless patient Spider
Lines 46
Message-ID <p8pghe$am8$2@dont-email.me> (permalink)
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
Injection-Date Mon, 19 Mar 2018 23:19:11 -0000 (UTC)
Injection-Info reader02.eternal-september.org; posting-host="3c765d79771e148140ec444f0d0089fa"; logging-data="10952"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18QkQpKsQg9Is/6r42uMNUNK5LNHneKpck="
User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
Content-Language en-US
X-Mozilla-News-Host news://news.eternal-september.org:119
Cancel-Lock sha1:JiIu/5ZXFEkaLTnISRYoz/IoyaY=
Xref csiph.com comp.programming.threads:4090

Show key headers only | View raw


Hello,


I have to prove my scalable reference counting algorithm, like with 
mathematical proof, so i will use logic to prove like in PhD papers:

You will find the code of my scalable reference counting inside 
AMInterfacedObject.pas inside the zip file here:

https://sites.google.com/site/aminer68/scalable-reference-counting-with-efficient-support-for-weak-references


If you look inside the code there is two methods, _AddRef() and 
_Release() methods, i am using two scalable counting networks,
think about them like counters, so in the _AddRef() method i am
executing the following:

v1 := counting_network_next_value(cn1);

cn1 is the scalable counting network, and counting_network_next_value()
is a function that increment the scalable counting network by 1.

In the _Release() method i am executing the following:

v2 := counting_network_next_value(cn1);
v1 := counting_network_next_value(cn2);
v1 := counting_network_next_value(cn2);

So my scalable algorithm is "smart", because the logical proof is
that i am calling counting_network_next_value(cn1) first in the
above, so this allows my scalable algorithm to work correctly,
because we are advancing cn1 by 1 to obtain the value of cn1,
so the other threads are advancing also cn1 by one inside
_Release() , it is the last thread that is advancing cn1
by 1 that will make the reference counter equal to 0 , so
this scalable algorithm is working. Please look more carefully
at my algorithm and you will notice that it is working as
i have just logically proved it.


Thank you,
Amine Moulay Ramdane.



Back to comp.programming.threads | Previous | Next | Find similar | Unroll thread


Thread

I have to prove my scalable reference counting algorithm computer45 <computer45@cyber.com> - 2018-03-19 23:19 -0400

csiph-web