libretto icon indicating copy to clipboard operation
libretto copied to clipboard

Concurrent tree

Open TomasMikula opened this issue 4 years ago • 0 comments

Implement a tree that supports modifications in different branches concurrently, i.e. update in one branch is not blocked until an update in a different branch completes. Mutual exclusion is needed only along the common path in the tree - as soon as the paths diverge, updates can occur concurrently.

Each node is an active entity (actor, agent) that communicates with its parent and children.

A node may signal completion to its parent.

A node has to listen concurrently (race) for communication from its parent and all children.

Use in Pollable.subscribeByKey, so that dispatch of a value for key k2 is not blocked until dispatch of a previous value for key k1 is complete.

TomasMikula avatar Oct 15 '20 19:10 TomasMikula