3 ms·
(author here) The collected CAS operations are batched together using a lock-free k-CAS implementation. The library does not presuppose a hardware k-CAS mechani
by kcsrk 10y ago
(author here) The collected CAS operations are batched together using a lock-free k-CAS implementation. The library does not presuppose a hardware k-CAS mechanism.
The built up transactions carry around some information internally (blocking, # of CASes, etc). You could possibly extend the API to query them. But it is not clear to me immediately why you'd want to expose all of this info in the types.
- BenoitP 10y agoThanks for the clarifications. > you'd want to expose all of this info in the types This is a just a generic idea. I meant the type system would let you express some property; and it would carry it to the rest of the program. In an IDE, you would have several views that would inform you of those properties. The "blocking" view would have color hints for: non_blocking, blocking_wait_IO, blocking_mutex, contention_on_X, etc; when this information is only in the documentation of the called elements. Today, composing elements loses this information, when it could be carried with static analysis and sometimes some help.