Experimental Physics and Industrial Control System
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
- Replies:
- Re: ca_create_channel memory management pthomas
- Re: ca_create_channel memory management pthomas
- References:
- Re: ca_create_channel memory management pthomas
- Navigate by Date:
- Prev:
Re: epicsMessageQueue Linux PREEMPT_RT Till Straumann
- 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
- 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