aboutsummaryrefslogtreecommitdiff
path: root/iemnet_sender.c
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-08-20 14:12:50 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-08-20 14:12:50 +0000
commit2e68fe6ba7fb250f692c5200676d7452338d652e (patch)
tree5b0cbe1ed6cbdfdb416184b1120ce36c4a6fbe59 /iemnet_sender.c
parenta8c52f1c5642701fd946b7e55a337e0e78dd36ec (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.c9
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) {