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: Andrew Johnson <anj@aps.anl.gov>
To: tech-talk@aps.anl.gov
Date: Fri, 5 Jul 2013 13:23:32 -0500
Hi Ben,

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.

> > 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.

HTH,

- Andrew
-- 
Advertising may be described as the science of arresting the human
intelligence long enough to get money from it. -- Stephen Leacock

Replies:
Re: pvGet timeout in sequencer 2.1.12 Benjamin Franksen
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 Benjamin Franksen

Navigate by Date:
Prev: Re: Development with EPICS and CSS marcus . michalsky
Next: Re: pvGet timeout in sequencer 2.1.12 Benjamin Franksen
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 Benjamin Franksen
Next: Re: pvGet timeout in sequencer 2.1.12 Benjamin Franksen
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