aboutsummaryrefslogtreecommitdiff
path: root/src/core/socket.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-18 10:11:51 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-18 10:11:51 -0800
commit7a9c328c4fd29fa7ba3dce8c8189384cd855d244 (patch)
tree650ba9a592957fffd71d3adcfcfbb45155b668e7 /src/core/socket.c
parentc44386d110f5f335a34cc964768ab14d36b6dd36 (diff)
downloadnng-7a9c328c4fd29fa7ba3dce8c8189384cd855d244.tar.gz
nng-7a9c328c4fd29fa7ba3dce8c8189384cd855d244.tar.bz2
nng-7a9c328c4fd29fa7ba3dce8c8189384cd855d244.zip
Fix leaking notify structs.
Diffstat (limited to 'src/core/socket.c')
-rw-r--r--src/core/socket.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/socket.c b/src/core/socket.c
index a7dfd07f..1b4d1585 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -408,6 +408,7 @@ void
nni_sock_close(nni_sock *sock)
{
int i;
+ nni_notify *notify;
// Shutdown everything if not already done. This operation
// is idempotent.
@@ -427,6 +428,10 @@ nni_sock_close(nni_sock *sock)
for (i = 0; i < NNI_MAXWORKERS; i++) {
nni_thr_fini(&sock->s_worker_thr[i]);
}
+ while ((notify = nni_list_first(&sock->s_notify)) != NULL) {
+ nni_list_remove(&sock->s_notify, notify);
+ NNI_FREE_STRUCT(notify);
+ }
nni_thr_fini(&sock->s_notifier);
nni_thr_fini(&sock->s_reaper);
nni_msgq_fini(sock->s_urq);