Hi Andrew
thank you very much for this answer. I'm sorry, I could have found that
information myself by searching the CA manual more carefully.
I will release a new sequencer version that contains a suitable fix that
relies on CA calling the event handler for every request it accepted.
Cheers
Ben
Am Freitag, 5. Juli 2013, 20:23:32 schrieb Andrew Johnson:
> On 2013-07-04 Benjamin Franksen wrote:
> > I feel a bit left alone, momentarily, talking to myself all the time. I
> > guess all the experts are on vacation.
>
> I have been reading your messages on this subject, but the expert on CA is
> Jeff Hill who has been posting a little recently so I was hoping he would
> respond.
(Me too. I would still feel better to have this confirmed by Jeff himself.)
> > > Channel Access Question
> > > =======================
> > >
> > > Does the CA client library guarantee that callbacks for
> > > ca_array_get_callback and ca_array_put_callback are eventually
> > > called, no matter what, assuming I just wait long enough?
> > >
> > > Note that "no matter what" includes lost connections etc.
>
> The CA reference manual says the following about ca_put_callback():
> > When ca_array_put_callback are invoked the user supplied asynchronous
> > call back is called only after the initiated write operation, and all
> > actions resulting from the initiating write operation, complete.
> >
> > If unsuccessful the call back function is invoked indicating failure
> > status.
> >
> > If the channel disconnects before a put callback request can be
> > completed, then the client's call back function is called with failure
> > status, but this does not guarantee that the server did not receive and
> > process the request before the disconnect. If a connection is lost and
> > then resumed outstanding ca put requests are not automatically reissued
> > following reconnect.
>
> and this about ca_get_callback():
> > When ca_get_callback or ca_array_get_callback are invoked a value is
> > read from the channel and then the user's callback is invoked with a
> > pointer to the retrieved value. Note that ca_pend_io will not block
> > for the delivery of values requested by ca_get_callback. If the channel
> > disconnects before a ca get callback request can be completed, then the
> > clients call back function is called with failure status.
>
> Both of those texts would seem to indicate that you can rely on your
> callback eventually being called one way or the other.
>
> If you come across a situation where your callback is not being called, the
> documentation implies that should only be due to a bug in the
> implementation, which would then need to be fixed.
--
"Make it so they have to reboot after every typo." -- Scott Adams
________________________________
Helmholtz-Zentrum Berlin für Materialien und Energie GmbH
Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.
Aufsichtsrat: Vorsitzender Prof. Dr. Dr. h.c. mult. Joachim Treusch, stv. Vorsitzende Dr. Beatrix Vierkorn-Rudolph
Geschäftsführung: Prof. Dr. Anke Rita Kaysser-Pyzalla, Thomas Frederking
Sitz Berlin, AG Charlottenburg, 89 HRB 5583
Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin
http://www.helmholtz-berlin.de
- References:
- pvGet timeout in sequencer 2.1.12 Carl Lionberger
- Re: pvGet timeout in sequencer 2.1.12 Benjamin Franksen
- Re: pvGet timeout in sequencer 2.1.12 Andrew Johnson
- Navigate by Date:
- Prev:
Re: pvGet timeout in sequencer 2.1.12 Andrew Johnson
- Next:
Re: Andrew Johnson
- 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
- Navigate by Thread:
- Prev:
Re: pvGet timeout in sequencer 2.1.12 Andrew Johnson
- Next:
CSS plugin sources James F Ross
- 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
|