[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [Libevent-users] how to jude is the bufferevent has been free
On Tue, Oct 09, 2012 at 06:05:57PM +0800, rqslt wrote:
> ??? 2012???10???09??? 17:05, Nir Soffer ??????:
> >
> >On Oct 9, 2012, at 6:12 AM, rqslt wrote:
> >
> >> I want know how to jude is the bufferevent has been free. In
> >>function A , i use bufferevent_free free the bufferevetn; In
> >>fuction B, how to jude is the bufferevent has been free ?
> >> Who can tell me what to do ? Thanks.
> >
> >Check if the pointer is NULL?
> >
> No, the road is blocked.
Let me try translation:
jude = judge,
road = read?
Once a bufferevent has been free()'d the pointer becomes a garbage
pointer. You need to pass some structure around that can set the
bufferevent variable to NULL when you free it so other functions know.
Something like:
struct foo {
void * mydata;
struct bufferevent * bev;
};
void function_a(..., void * arg) {
struct foo * bar = (struct foo *)arg;
bufferevent_free(bar->bev);
bar->bev = NULL;
}
void function_b(..., void * arg) {
struct foo * bar = (struct foo *)arg;
if (bar->bev == NULL) {
/* bev is already free */
}
/* whatever else */
}
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users in the body.