Subj : Re: RCU+SMR To : comp.programming.threads From : Joe Seigh Date : Mon Jul 11 2005 06:28 pm David Hopwood wrote: > Joe Seigh wrote: > >> David Hopwood wrote: >> >>> Randy Howard wrote: >>> >>>> True. I've yet to hear of any commercial or popular OSS application >>>> bragging about the massive performance benefits achieved through the >>>> use of lock-free techniques. >>> >>> >>> I very much doubt that there is enough benefit from using lock-free >>> techniques in *applications* to justify the complexity cost, and the >>> effort required to learn how to use them correctly. They belong in >>> operating systems and language implementations, where these costs are >>> amortized over many apps. >>> >> Depends on the api and usage patterns that you create for the lock-free >> stuff. > > > I don't think it does, really. Note that I was talking about using > lock-free > techniques directly in applications; not using "infrastructure" libraries > that happen to be implemented using lock-free stuff, but that do not expose > it to their clients. My argument is that lock-free primitives are > inherently > too complex and error-prone to be exposed directly for general-purpose > application programming, no matter how well-designed the API. My experience is that people who believe their low level api are too complex for normal programmers to use and and only allow useage through a high level api, generally suck at designing api's. If the low level api was available, at least someone else who isn't so bad at api design could try to design a better one. And they certainly couldn't design a new or different api if the low level api wasn't available. If the only api available is a lock-free linked list and someone wants to design a lock-free tree, they won't be able to do one. Java is a good example here. There are a lot of classes that are final and not extendable simply because the class author doesn't trust users to extend their class even though that is the whole *point* of OOP. There are design patterns whose main purpose in being seems to be to get around such restrictions which is certainly an irony. -- Joe Seigh When you get lemons, you make lemonade. When you get hardware, you make software. .