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: StreamDevice 2 |
From: | Dirk Zimoch <[email protected]> |
To: | Benjamin Franksen <[email protected]> |
Cc: | [email protected] |
Date: | Mon, 13 Mar 2006 10:48:32 +0100 |
I have one question: the docs say that readback from devices for output records (for bumpless reboot) is done synchronously, blocking iocInit until all such readbacks have completed. There may be situations where this is the right aproach. However, there are others, where one would wish to have the readback to proceed asynchronously, for instance if there are a lot of such records on an IOC.
In our MultiCAN package we do this by letting init_record 'fake' the first phase of asynchronous processing. That is, init_record starts readback, sets PACT and arranges for a special kind of process callback that lets processing complete with a read (instead of the normal write) operation.
Would it be very difficult to enable such behavior (optionally, the synchronous version remaining the default) for StreamDevice, too? Would you accept a patch that implements this?
The StreamDevice docs mention the interaction with PINI flag. I think the best solution is to enable readback on startup only if PINI is /not/ set. Reading back from teh device hardly makes sense if the first thing you are going to do is overwrite the value with something else. OTOH, if PINI is not set, then doing a readback on startup will at least not do any harm.
-- Dr. Dirk Zimoch Swiss Light Source Paul Scherrer Institut Computing and Controls phone +41 56 310 5182 fax +41 56 310 4413