1
Vote

Add Timeouts

description

Sometimes a stage A needs to accomplish its task within a given time. If not output is produced until a timeout the flow should be aborted.
Flow stages thus should optionally carry a timeout value, e.g.
 
Flow<int>.Do<string>(..., 1000).Do<string>(...)
 
If the first stage does not produce at least one output value within 1000msec, then the flow is aborted.
 
Maybe also a join could be equipped with a timeout. It could be interpreted in different ways, though:
 
a. The timeout fires if no input has been received since the flow forked.
b. The timeout fires, if not enough values have arrived within a timespan (since the first value arrived).

comments