aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) {