I see how this is confusing. A record has completed its processing (including the second pass of asynchronous processing) when it executes its forward link, and this is the sense of "complete" intended by section 5.9. But a forward link is just a function
call, and a record cannot be entirely done until that call returns. It won't return until the records downstream have executed their forward links.
Hi all,
I have another question, but this time it is about Chapter 5 in the Application Developer's Guide regarding asynchronous record processing. In Section 5.9, it states that the asynchronous completion routine performs the following algorithm.
1. Record processing continues
2. Record specific alarm conditions are checked
3. Monitors are raised
4. Forward links are processed
5. PACT is set FALSE.
For step 4, suppose the record is forward-linked to another asynchronous record. Section 5.9.1 and Section 5.9.3 seem to imply that the forward-linked record will be processed after the initial record has completed its processing, particularly from this statement
(Forward and output links are triggered only when the asynchronous completion routine completes record processing).
However, in the discussion from Section 5.7, record A doesn't complete processing until all the subsequent records that are forward-linked to A have completed their processing.
I feel like I am missing something, because the understanding I get from the two sections appear to run counter to each other, unless it is because synchronous and asynchronous processing are in fact different from each other and do not share a lot of similarities.
However, if the forward-linked records in step 4 need to complete their processing before moving onto Step 5, then it makes more sense.
Again, I really appreciate the time this community takes out of its day to help elucidate these questions I have.
Thanks,
Andy