aboutsummaryrefslogtreecommitdiff
path: root/src/core/socket.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-06-21 14:04:16 -0700
committerGarrett D'Amore <garrett@damore.org>2017-06-21 14:04:16 -0700
commit763b8deee1fd38566b85d4745a83adae245d9b26 (patch)
tree00404dbc8e6c07fc5a9d8e07f353beff3adefd5a /src/core/socket.c
parentf81c7e8cc84bd43bfc3cc5e41f773a0078870312 (diff)
downloadnng-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.c17
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);