diff options
Diffstat (limited to 'src/core/endpt.c')
| -rw-r--r-- | src/core/endpt.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/core/endpt.c b/src/core/endpt.c index d3b004d5..efd3eefb 100644 --- a/src/core/endpt.c +++ b/src/core/endpt.c @@ -198,17 +198,16 @@ nni_ep_close(nni_ep *ep) nni_sock *sock = ep->ep_sock; nni_mtx_lock(&ep->ep_mtx); - NNI_ASSERT(ep->ep_closed == 0); - ep->ep_closed = 1; - ep->ep_ops.ep_close(ep->ep_data); - if ((pipe = ep->ep_pipe) != NULL) { - pipe->p_ep = NULL; - ep->ep_pipe = NULL; - } - nni_cv_wake(&ep->ep_cv); + if (ep->ep_closed == 0) { + ep->ep_closed = 1; + ep->ep_ops.ep_close(ep->ep_data); + if ((pipe = ep->ep_pipe) != NULL) { + pipe->p_ep = NULL; + ep->ep_pipe = NULL; + } + nni_cv_wake(&ep->ep_cv); + } nni_mtx_unlock(&ep->ep_mtx); - - nni_objhash_unref(nni_eps, ep->ep_id); } |
