Skip to content

refactor parallel composition #18

Description

@derabbink

First complete #17.

Parallel composition should only be accessible through a method TargetedInstruction<TArgument, Tuple<TResult1, TResult2>> Simultaneously(TargetedInstruction<TArgument, TResult2> otherInstruction) (which returns a CoordinatorInstruction<TArgument, Tuple<TResult1, TResult2>>) on a TargetedInstruction<TArgument, TResult1>.

This will allow for endlessly many parallel executions, as nested pairs of parallel executions.
These pairs need to be flattened automatically, meaning the following example would result in a TargetedInstruction<TArgument, Tuple<TResult1, TResult2, TResult3>

pc1.Do(...)
.Simultaneously(pc2.Do(...))
.Simultaneously(pc3.Do(...))

However, this flattening must be type safe.

Completion of this issue should make Coordinator obsolete, meaning all references to its usage, as well as the class itself should be refactored/removed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions