diff options
Diffstat (limited to 'src/transport/ipc/ipc.c')
| -rw-r--r-- | src/transport/ipc/ipc.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/transport/ipc/ipc.c b/src/transport/ipc/ipc.c index b48b82d9..7d99e507 100644 --- a/src/transport/ipc/ipc.c +++ b/src/transport/ipc/ipc.c @@ -827,14 +827,22 @@ static int ipc_ep_get_recvmaxsz(void *arg, void *data, size_t *szp, nni_opt_type t) { ipc_ep *ep = arg; - return (nni_copyout_size(ep->rcvmax, data, szp, t)); + int rv; + nni_mtx_lock(&ep->mtx); + rv = nni_copyout_size(ep->rcvmax, data, szp, t); + nni_mtx_unlock(&ep->mtx); + return (rv); } static int ipc_ep_get_addr(void *arg, void *data, size_t *szp, nni_opt_type t) { ipc_ep *ep = arg; - return (nni_copyout_sockaddr(&ep->sa, data, szp, t)); + int rv; + nni_mtx_lock(&ep->mtx); + rv = nni_copyout_sockaddr(&ep->sa, data, szp, t); + nni_mtx_unlock(&ep->mtx); + return (rv); } static int @@ -868,7 +876,9 @@ ipc_ep_set_sec_desc(void *arg, const void *data, size_t sz, nni_opt_type t) int rv; if ((rv = nni_copyin_ptr(&ptr, data, sz, t)) == 0) { + nni_mtx_lock(&ep->mtx); rv = nni_plat_ipc_ep_set_security_descriptor(ep->iep, ptr); + nni_mtx_unlock(&ep->mtx); } return (rv); } |
