You can just check the status and connection state.
void myCallback(struct event_handler_args eha)
{
if (eha.status != ECA_NORMAL) return;
if (eha.chid==NULL) return;
if (ca_state(eha.chid) != cs_conn) return;
...
Tim
----- Original Message -----
> From: [email protected]
> To: "Tim Mooney" <[email protected]>
> Cc: [email protected], [email protected], "Andrew Johnson" <[email protected]>
> Sent: Monday, January 31, 2011 10:58:14 AM
> Subject: Re: ca_create_channel memory management
> Is it possible to do this? Would you need a global variable
> referencing
> each cleared channel?
>
> > If your channel is doing any callbacks (e.g., you're monitoring it),
> > you might have outstanding monitors at the time you decide to clear
> > the channel. You need to tell your callback routine to ignore any
> > calls that come after you've called cleanup(), so it doesn't
> > reference
> > pUserPrivate after it's been freed.
> > Tim
> >
> > ----- Original Message -----
> >> From: [email protected]
> >> To: "Andrew Johnson" <[email protected]>
> >> Cc: [email protected]
> >> Sent: Friday, January 28, 2011 11:56:37 AM
> >> Subject: Re: ca_create_channel memory management
> >> So:
> >>
> >> void cleanup(chid ChanID) {
> >> void* pUserPrivate;
> >>
> >> pUserPrivate = ca_puser(ChanID);
> >> free(pUserPrivate);
> >> ca_clear_channel(ChanID);
> >> }
> >> ?
> >>
> >> > Hi Patrick,
> >> >
> >> > On Friday 28 January 2011 11:10:29 [email protected]
> >> > wrote:
> >> >> If you allocate memory and send a pointer to it in the puser
> >> >> field
> >> >> of
> >> >> ca_create_channel, does it get freed when ca_clear_channel is
> >> >> called, or
> >> >> should I do that explicitly?
> >> >
> >> > There's no way the CA API could know whether it should do that or
> >> > not, so
> >> > it
> >> > doesn't and it falls on you to do it yourself.
> >> >
> >> > - Andrew
> >> > --
> >> > If a man is offered a fact which goes against his instincts, he
> >> > will
> >> > scrutinize it closely, and unless the evidence is overwhelming,
> >> > he
> >> > will
> >> > refuse to believe it. If, on the other hand, he is offered
> >> > something
> >> > which affords a reason for acting in accordance to his instincts,
> >> > he
> >> > will accept it even on the slightest evidence. -- Bertrand
> >> > Russell
> >> >
> >> >
> >
> > --
> > Tim Mooney ([email protected]) (630)252-5417
> > Software Services Group (www.aps.anl.gov)
> > Advanced Photon Source, Argonne National Lab
> >
> >
--
Tim Mooney ([email protected]) (630)252-5417
Software Services Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab
- References:
- Re: ca_create_channel memory management pthomas
- Navigate by Date:
- Prev:
RE: epicsEvent (posix implementation) bug ? james.rowland
- Next:
Re: epicsEvent (posix implementation) bug ? 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: ca_create_channel memory management pthomas
- Next:
Re: ca_create_channel memory management pthomas
- 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
|