summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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);