fransv

Perhaps you'll call it abuse of the CCR 8-), but I wanted to use it as an asynchronous implementation of the observer pattern, where different interested observers can register themselves, which all get notified when something happens. So my idea was
to register different TaskReceiver objects (as observers) to a Port where items are posted such that all TaskReceiver objects are executed (as concurrent as possible). The actual implementation of the CCR is that only one of them is.

A nice thing is that possible observers only would get notified if there are new items at multiple ports.

Perhaps an idea for future versions of the CCR: let the user choose if only one TaskReceiver gets the item (as implemented today) or all (unless of course the predicate indicates that the item is of no interest to the specific TaskReceiver object).

I don't know if you ever looked at the CCR as a way to implement an asynchronous version of the observer pattern and perhaps the impact of what I propose is too big.