Hi Andrew,
By "indirect" I mean, for example, a record with a CPP link on a PV whose value changes as the result of the SSEQ record's processing. EPICS doesn't include that record's processing in its execution trace of SSEQ-record-driven processing.
It doesn't matter whether records that are included in an EPICS execution trace are synchronous or asynchronous, because EPICS uses a record's forward link to determine when that record is done, and asynchronous record processing doesn't execute the forward
link until the end of the second pass of asynchronous processing.
See slides 31 and following ("completion reporting") of this powerpoint presentation for an illustrated guide to the possibilities that can be involved in an execution trace:
Tim Mooney (mooney at anl.gov) (630)252-5417
Beamline Controls Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Wang, Andrew via Tech-talk <tech-talk at aps.anl.gov>
Sent: Saturday, August 6, 2022 12:59 AM
To: EPICS tech-talk <tech-talk at aps.anl.gov>
Subject: Question about "indirect processing" mentioned in documentation for the SSEQ
Hi all,
I have a quick question regarding this one sentence about WAIT in the SSEQ documentation. It states:
"Finally, if the sseq record
successfully waits for targetRecord to finish processing, it is still possible for other records to process as an indirect result
of LNKn, and the sseq record
cannot wait for this indirectly caused processing to finish unless the database developer has arranged for the indirectly caused processing to be traceable by EPICS."
Two questions I have.
- Suppose LNKn processes a record called "rec_1" through CA, "rec_1" is forward-linked to "rec_2", and "rec_2" is forward-linked to "rec_3". Does the statement about indirect processing apply in the case of "rec_1", "rec_2", and "rec_3" all being
synchronous records when WAITn is set to be "Wait".
- Using the same example, except with "rec_1", "rec_2", and "rec_3" all being asynchronous records (StreamDevice), would indirect processing apply to this case
when WAITn is set to be "Wait"? For instance, would SSEQ just wait for "rec_1"'s completion routine or "rec_3"'s completion routine?
Thank you very much,
Andy
|