for experts implementing correct and performant lock-free data structures, and
for everyone gluing together programs using such data structures.
The second bullet is really the reason why a composable approach makes sense as it allows people to reuse carefully designed and implemented data structures and other kinds of communication and synchronization mechanisms to solve their ad hoc concurrent programming problems. The current documentation, however, mostly reflects the first bullet. While it is important that one can implement efficient queues and hash tables using kcas, it is also very unlikely to help most people see how they could use kcas to solve higher-level concurrent programming problems, such as those described in the two messages below:
So, write new documentation to primarily address the second bullet and relegate the discussion of the advanced data structure implementations techniques to secondary status.
kcas aims to be usable both
The second bullet is really the reason why a composable approach makes sense as it allows people to reuse carefully designed and implemented data structures and other kinds of communication and synchronization mechanisms to solve their ad hoc concurrent programming problems. The current documentation, however, mostly reflects the first bullet. While it is important that one can implement efficient queues and hash tables using kcas, it is also very unlikely to help most people see how they could use kcas to solve higher-level concurrent programming problems, such as those described in the two messages below:
So, write new documentation to primarily address the second bullet and relegate the discussion of the advanced data structure implementations techniques to secondary status.