From what I gathered on the lock free programming, it is incredibly hard to do right... and I agree. Just thinking about some problems makes my head hurt. But what I wonder is, why isn't there a widespread use of high-level wrappers around (e.g. lock free queue and similar stuff)? For example boost has no lock free library, although one was suggested as far as I know. I mean I guess that there is a lot of applications where you cant avoid the fact that the critical section is the big part of the load. So what are the reasons? Is it...
- Patents - I heard that some stuff related to lock-free programming is patented.
- Performance.
- Google, and Microsoft have internal libraries like that but none of them are public...
- Something else?
So my question is: Why are high level abstractions that use lock free programming deep down not very popular, while at the same time "regular" multi-threaded programming is "in"?
EDIT: boost got a lockfree lib :)