Hi Tagir,

Hmm… we certainly ensure that any short-circuiting computation will wait until 
all the computation is complete (tasks still running whose results will be 
thrown away have to complete before the terminal operation returns).

In that sprit we should be consistent when exceptions are thrown.

But we don’t currently do anything or say anything when a task exceptionally 
completes, which propagates exceptional completion status up through the 
computation tree, and when the root task is hit (whose status has the SIGNAL 
bit set) the caller thread will be notified. This happens independently of task 
completion via pending counts of CountedCompleter and rest of the computation 
continues on blissfully unaware.

I need to think about this a little more. To support this we may need to track 
exceptional completion explicitly by propagating state through CountedCompleter 
completions.

Paul.

Reply via email to