tag:blogger.com,1999:blog-29331675.post3472550202464156890..comments2024-03-05T17:37:00.995+01:00Comments on The Delphi Geek: Dynamic lock-free queue – doing it rightgabr42http://www.blogger.com/profile/06903558857617342477noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-29331675.post-62843668409396935042010-03-04T22:59:56.240+01:002010-03-04T22:59:56.240+01:00I suppose I could. I don't know how that would...I suppose I could. I don't know how that would affect the speed, though. The current method was chosen by our assembler expert.gabr42https://www.blogger.com/profile/06903558857617342477noreply@blogger.comtag:blogger.com,1999:blog-29331675.post-61933077153108759052010-03-04T21:43:14.723+01:002010-03-04T21:43:14.723+01:00Can't you just use FISTP for atomic 64bit move...Can't you just use FISTP for atomic 64bit move? According to Intel it's guaranteed atomic (if 8byte aligned) since the Pentium.golnoreply@blogger.comtag:blogger.com,1999:blog-29331675.post-38997592585709765532010-02-19T14:47:51.581+01:002010-02-19T14:47:51.581+01:00RE naming: Tags were named from the viewpoint of t...RE naming: Tags were named from the viewpoint of the slot function. When the slot is a data slot, it goes through the following cycle: free -> allocating -> allocated -> removing (-> sentinel). When the slot is a terminal slot in the block, it goes through the following cycle: endOfList -> extending -> blockPointer -> destroying. I think this is reasonable enough.<br /><br />RE endOfList: The code is correct. The text is not. I'll fix the text, thanks for the warning!gabr42https://www.blogger.com/profile/06903558857617342477noreply@blogger.comtag:blogger.com,1999:blog-29331675.post-82999296351351465682010-02-19T12:23:34.758+01:002010-02-19T12:23:34.758+01:00I find it weird that you call the state in which y...I find it weird that you call the state in which you're enqueueing a value 'tagAllocating, while the state in which you're allocating a new block is called 'tagExtending'. Rephrasing that could help in making the code more understandable.<br /><br />Also, you're explanation says that when extending, the EndOfList slot's value is changed to point to the new block address. But you're code makes it point to the address of the sentinel-slot in the new block... could you explain what's going on there?Patrickhttps://www.blogger.com/profile/00573028757978933821noreply@blogger.comtag:blogger.com,1999:blog-29331675.post-32343198140504216172010-02-19T11:35:40.143+01:002010-02-19T11:35:40.143+01:00Thanks for this Queue Gabr.Thanks for this Queue Gabr.Daniele Tetihttp://www.danieleteti.itnoreply@blogger.comtag:blogger.com,1999:blog-29331675.post-86515189871379273312010-02-18T19:53:10.371+01:002010-02-18T19:53:10.371+01:00OTL 1.5 will be released really really soon now ;)...OTL 1.5 will be released really really soon now ;)<br /><br />Most probably it will be released some time next week.gabr42https://www.blogger.com/profile/06903558857617342477noreply@blogger.comtag:blogger.com,1999:blog-29331675.post-85859649288804086022010-02-18T19:42:49.866+01:002010-02-18T19:42:49.866+01:00Super!
Any idea when OTL 1.5 will be released? ...Super! <br /><br />Any idea when OTL 1.5 will be released? <br /><br />I'm about to begin a major refactoring of a project using OTL 1.3. I'm wondering if I should wait until OTL 1.5 is out.<br /><br />ps<br /><br />Your wife should take you to concerts more often.Anonymousnoreply@blogger.com