1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Asynchronous record processing confusion |
From: | "Mooney, Tim M. via Tech-talk" <tech-talk at aps.anl.gov> |
To: | EPICS tech-talk <tech-talk at aps.anl.gov>, "Wang, Andrew" <wang126 at llnl.gov> |
Date: | Sun, 7 Aug 2022 20:49:22 +0000 |
Hi Andrew,
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.
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: Sunday, August 7, 2022 2:12 PM To: EPICS tech-talk <tech-talk at aps.anl.gov> Subject: Asynchronous record processing confusion
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
|