- cmsg cancel <ngqmdg$4g7$5@dont-email.me> - 4 Updates
- Here another confirmation from Remy Lebeau (TeamB) - 1 Update
- A second security wall - 1 Update
- We have to reason like an expert... - 1 Update
- I am correcting a bug - 1 Update
- A new scalable synchronization algorithm is coming... - 2 Updates
bleachbot <bleachbot@httrack.com>: May 09 08:58PM +0200 |
bleachbot <bleachbot@httrack.com>: May 09 10:05PM +0200 |
bleachbot <bleachbot@httrack.com>: May 10 12:08AM +0200 |
bleachbot <bleachbot@httrack.com>: May 10 12:13AM +0200 |
Ramine <ramine@1.1>: May 09 06:18PM -0700 Hello, Here another confirmation from Remy Lebeau (TeamB) that i received: https://forums.embarcadero.com/thread.jspa?threadID=211097&tstart=0 Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 09 06:13PM -0700 Hello.... I have talked about my first security wall, that is in Delphi and FreePascal that values of dynamic allocated pointers are not put in registers, so in my algorithms of my C++ synchronization objects library i am using dynamic allocated pointers. Here is my second security wall: Since i am using, in C++, Dynamic Link Libraries compiled with Freepascal , i think my C++ synchronization objects library is safe because C++ can not optimize from outside and put variables of the Dynamic Link Libraries in registers. So i think that you can be confident with my C++ synchronization objects library. So you can download my new and extended C++ synchronization objects library from, i think that it is safe now: https://sites.google.com/site/aminer68/c-synchronization-objects-library Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 09 04:06PM -0700 Hello....... We have to reason like an expert... Since C++ can use registers to store variable, so without memory barrier you can not be sure that the variables on the registers will be flushed to memory and made visible immediatly by the cache-coherence protocol, so in C++ this is a difficult situation, but since i am using Delphi compiler and FreePascal compilers, i am safe, because i am using dynamically allocated pointers, and dynamically allocated pointers in FreePascal and Delphi allow us to prevent the Delphi and FreePascal compilers from using a register for the values of dynamically allocated memory, but it still can use registers for the addresses of the pointers, but this allow us to be safe in Delphi an FreePascal compiler. Other than that since i am not using memory barriers or fences on the reader side, so in my algorithm i have on the RLock() method this: FCount1^[myid1].fcount1:=FCount1^[myid1].fcount1+1; And on the RUnlock() method i have this: FCount1^[myid1].fcount1:=0; So in x86 since stores can not be reorder with otherther loads and stores to the same location. So i can state that finally my implementation of my algorithm is safe and it does not need the windows function FlushProcessWriteBuffers(). So you can download my new amd extended C++ synchronization objects library from, i think that it is safe now: https://sites.google.com/site/aminer68/c-synchronization-objects-library Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 09 02:58PM -0700 Hello.... I think i have to use the windows FlushProcessWriteBuffers on my asymmetric Distributed reader-writer mutex, because the memory barriers ensure all the processor cache are flushed to RAM, but since i am not using memory barriers or any atomics, so i must use the windows FlushProcessWriteBuffers. i am currently correcting this bug , and i will post soon an updated version. Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 08 09:20PM -0700 Hello..... A new scalable synchronization algorithm is coming... I was thinking more and more, and i have come to a conclusion that Seqlock or my SeqlockX are not suitable for realtime critical systems, because they are lockfree, so prone to starvation. So i am right now finishing a new algorithm and implementing it in Object Pascal and C++, this new algorithm is a scalable reader-writer mutex that is costless on the reader side, as is RCU, and in the writer side it is uses a distributed technic as the distributed reader-writer mutex, this algorithm is FIFO fair on the writer side and FIFO fair on the reader side and it is of course starvation-free, so it is suitable for realtime critical systems, the simplicity of use by users of the implementation of this algorithm makes it more suitable that the much harder approach of RCU. So stay tuned , my new algorithm and its implementation in C++ and Object pascal is coming soon... Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 08 09:39PM -0700 Hello... Look at this Asymmetric rw_mutex with atomic-free fast-path for readers by Dmitry Vyukov: https://groups.google.com/forum/#!topic/lock-free/Hv3GUlccYTc My new algorithm and its implementation that is coming soon doesn't use epoch detection logic, an it uses a distributed technic, and it will be suitable for realtime critical systems, and the simplicity of use by users of the implementation of this algorithm makes it more suitable that the much harder approach of RCU. Thank you, Amine Moulay Ramdane. |
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page. To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com. |
No comments:
Post a Comment