My apologies for posting to the Cocoa list. It was just a silly mistake and will never happen again.
Thank for pointing out my error, Ken. We need good policemen to keep Apple Developer lists pure! And now I see that I have started a real problem as Don Quixote de la Mancha is discussing non-Cocoa issues on the Cocoa list. I must retire now, to sleep, to dream, to awaken to a fresh tomorrow aware of my onerous ways. -koko On Dec 6, 2011, at 9:05 PM, Don Quixote de la Mancha wrote: > It is a common misconception that the "volatile" keyword is necessary > or even helpful to code the implements locks and atomic operations. > > What you really want is a "memory barrier" that prevents the compiler > from emitting your machine code in the incorrect order, as well as > preventing microprocessors that can do out of order execution from > reordering your instructions. > > If you did not have such a memory barrier, then it could easily happen > that the payload portion of your critical section is placed outside > the region that is protected by your lock. > > The popular but misunderstood use of the volatile keyword is the > result of certain, specific compilers on certain specific instruction > set architectures implementing volatile variables by generating memory > barrier machine code. > > It can easily happen that your lock works properly anyway, but even if > so, the use of volatile will make your code both slower and larger. > > I was quite surprised at this fact myself. My bookmark for the page > where I learned all about this is on my other computer, but if I > remember correctly it was written by an Intel engineer who was one of > the developers of an Intel open source multithreaded toolkit. That > toolkit did use volatile everywhere at first, but when Intel opened > the source and so had to support ISAs other than Intels, they removed > all the volatiles and replaced them with explicit memory barriers. > > Contrary to Ken Thomases' assertion, there are all kinds of reasons to > use atomic operations as locking primitives. One is that they cannot > result in process context switches; if you are certain that you will > release the lock quite quickly, it is a whole lot faster, and uses > less memory, to use atomic arithmetic. > > I'll send you my bill in the mail, > > Don Quixote > -- > Don Quixote de la Mancha > Dulcinea Technologies Corporation > Software of Elegance and Beauty > http://www.dulcineatech.com > quix...@dulcineatech.com > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/koko%40highrolls.net > > This email sent to k...@highrolls.net > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com