From 491c98d28242180cc21df16cc13f5de76d45b401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 1 Apr 2010 12:21:11 +0000 Subject: cleanup queue in destructor svn path=/trunk/externals/iem/iemnet/; revision=13346 --- iemnet_receiver.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'iemnet_receiver.c') diff --git a/iemnet_receiver.c b/iemnet_receiver.c index d161354..d6f5bdf 100644 --- a/iemnet_receiver.c +++ b/iemnet_receiver.c @@ -113,10 +113,12 @@ static void iemnet__receiver_tick(t_iemnet_receiver *x) iemnet__chunk_destroy(c); c=queue_pop_noblock(x->queue); } + DEBUG("tick cleanup"); pthread_mutex_lock(&x->newdatamtx); x->newdataflag=0; pthread_mutex_unlock(&x->newdatamtx); - + + DEBUG("tick running %d", x->running); if(!x->running) { // read terminated @@ -124,6 +126,7 @@ static void iemnet__receiver_tick(t_iemnet_receiver *x) if(x->keepreceiving) x->callback(x->userdata, NULL, 0, NULL); } + DEBUG("tick DONE"); } int iemnet__receiver_getsize(t_iemnet_receiver*x) { @@ -196,6 +199,7 @@ void iemnet__receiver_destroy(t_iemnet_receiver*rec) { // empty the queue DEBUG("[%d] tick %d", inst, rec->running); iemnet__receiver_tick(rec); + queue_destroy(rec->queue); DEBUG("[%d] tack", inst); if(rec->data)iemnet__chunk_destroy(rec->data); @@ -210,6 +214,7 @@ void iemnet__receiver_destroy(t_iemnet_receiver*rec) { rec->data=NULL; rec->callback=NULL; rec->flist=NULL; + rec->queue=NULL; freebytes(rec, sizeof(t_iemnet_receiver)); rec=NULL; -- cgit v1.2.1