EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: pvGet timeout in sequencer 2.1.12
From: Benjamin Franksen <benjamin.franksen@helmholtz-berlin.de>
To: <tech-talk@aps.anl.gov>
Date: Fri, 5 Jul 2013 22:56:01 +0200
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  <20132014  2015  2016  2017  2018  2019 
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  <20132014  2015  2016  2017  2018  2019