ShapeOfMatter / MultiChor

Type-safe and efficient choreographies for Haskell, with multiply-located values, multi-cast, and location-set polymorphism.
Other
8 stars 0 forks source link

Concurrent party-level-looping #38

Open ShapeOfMatter opened 4 months ago

ShapeOfMatter commented 4 months ago

The current implementations of fanout and fanin are purely sequential; they're basically just for-loops for parties. This means that, in the common situation where everyone is broadcasting to everyone, the party N won't send anything until they've received N-1 messages from peers. Fix this using concurrency somehow.

(This is going to require doing something clever with the way messages are handled, because concurrent choreographies will break the current system.)