diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-06-21 14:04:16 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-06-21 14:04:16 -0700 |
| commit | 763b8deee1fd38566b85d4745a83adae245d9b26 (patch) | |
| tree | 00404dbc8e6c07fc5a9d8e07f353beff3adefd5a /src/core/socket.c | |
| parent | f81c7e8cc84bd43bfc3cc5e41f773a0078870312 (diff) | |
| download | nng-763b8deee1fd38566b85d4745a83adae245d9b26.tar.gz nng-763b8deee1fd38566b85d4745a83adae245d9b26.tar.bz2 nng-763b8deee1fd38566b85d4745a83adae245d9b26.zip | |
Make APIs for holding references more consistent.
Diffstat (limited to 'src/core/socket.c')
| -rw-r--r-- | src/core/socket.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/core/socket.c b/src/core/socket.c index ee653780..195bbcf3 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -39,7 +39,7 @@ nni_sock_recvq(nni_sock *s) int -nni_sock_hold(nni_sock **sockp, uint32_t id) +nni_sock_find(nni_sock **sockp, uint32_t id) { int rv; nni_sock *sock; @@ -66,6 +66,16 @@ nni_sock_hold(nni_sock **sockp, uint32_t id) void +nni_sock_hold(nni_sock *sock) +{ + int rv; + + rv = nni_objhash_find(nni_socks, sock->s_id, NULL); + NNI_ASSERT(rv == 0); +} + + +void nni_sock_rele(nni_sock *sock) { nni_objhash_unref(nni_socks, sock->s_id); @@ -615,9 +625,8 @@ nni_sock_add_ep(nni_sock *sock, nni_ep *ep) { int rv; - if ((rv = nni_sock_hold(NULL, sock->s_id)) != 0) { - return (rv); - } + nni_sock_hold(sock); + nni_mtx_lock(&sock->s_mx); if (sock->s_closing) { nni_mtx_unlock(&sock->s_mx); |
