diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-08-20 14:12:50 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-08-20 14:12:50 +0000 |
commit | 2e68fe6ba7fb250f692c5200676d7452338d652e (patch) | |
tree | 5b0cbe1ed6cbdfdb416184b1120ce36c4a6fbe59 /iemnet_sender.c | |
parent | a8c52f1c5642701fd946b7e55a337e0e78dd36ec (diff) |
more DEBUGs; clear memory before freeing it
svn path=/trunk/externals/iem/iemnet/; revision=13868
Diffstat (limited to 'iemnet_sender.c')
-rw-r--r-- | iemnet_sender.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/iemnet_sender.c b/iemnet_sender.c index 552f133..20fb93b 100644 --- a/iemnet_sender.c +++ b/iemnet_sender.c @@ -114,11 +114,10 @@ void iemnet__sender_destroy(t_iemnet_sender*s) { * s->keepsending is only set to "0" in here, * so if it is false, we know that we are already being called */ + DEBUG("destroy sender %x with queue %x (%d)", s, s->queue, s->keepsending); if(!s->keepsending)return; - - DEBUG("destroy sender %x", s); - s->keepsending=0; + queue_finish(s->queue); DEBUG("queue finished"); s->sockfd = -1; @@ -130,6 +129,8 @@ void iemnet__sender_destroy(t_iemnet_sender*s) { pthread_join(s->thread, NULL); DEBUG("thread joined"); queue_destroy(s->queue); + + memset(s, 0, sizeof(t_iemnet_sender)); freebytes(s, sizeof(t_iemnet_sender)); s=NULL; DEBUG("destroyed sender"); @@ -149,7 +150,7 @@ t_iemnet_sender*iemnet__sender_create(int sock) { result->sockfd = sock; result->keepsending =1; result->isrunning=1; - + DEBUG("create_sender queue=%x", result->queue); res=pthread_create(&result->thread, 0, iemnet__sender_sendthread, result); if(0==res) { |