aboutsummaryrefslogtreecommitdiff
path: root/src/sp
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-11-24 18:00:25 -0800
committerGarrett D'Amore <garrett@damore.org>2024-11-24 18:00:25 -0800
commitc3620e65e9eba6311175bef76e39069838852a71 (patch)
tree957219dd4b85fa01d96ed68a661626a69aa43dc9 /src/sp
parent269fd9ab6f2091968712849444483661f6b47f6b (diff)
downloadnng-c3620e65e9eba6311175bef76e39069838852a71.tar.gz
nng-c3620e65e9eba6311175bef76e39069838852a71.tar.bz2
nng-c3620e65e9eba6311175bef76e39069838852a71.zip
sockfd: inline aio structs
Diffstat (limited to 'src/sp')
-rw-r--r--src/sp/transport/socket/sockfd.c39
1 files changed, 20 insertions, 19 deletions
diff --git a/src/sp/transport/socket/sockfd.c b/src/sp/transport/socket/sockfd.c
index ca013077..45927d19 100644
--- a/src/sp/transport/socket/sockfd.c
+++ b/src/sp/transport/socket/sockfd.c
@@ -1,5 +1,5 @@
//
-// Copyright 2023 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2024 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
// Copyright 2019 Devolutions <info@devolutions.net>
//
@@ -60,8 +60,8 @@ struct sfd_tran_ep {
nng_sockaddr src;
int refcnt; // active pipes
nni_aio *useraio;
- nni_aio *connaio;
- nni_aio *timeaio;
+ nni_aio connaio;
+ nni_aio timeaio;
nni_list busypipes; // busy pipes -- ones passed to socket
nni_list waitpipes; // pipes waiting to match to socket
nni_list negopipes; // pipes busy negotiating
@@ -666,11 +666,11 @@ sfd_tran_ep_fini(void *arg)
return;
}
nni_mtx_unlock(&ep->mtx);
- nni_aio_stop(ep->timeaio);
- nni_aio_stop(ep->connaio);
+ nni_aio_stop(&ep->timeaio);
+ nni_aio_stop(&ep->connaio);
nng_stream_listener_free(ep->listener);
- nni_aio_free(ep->timeaio);
- nni_aio_free(ep->connaio);
+ nni_aio_fini(&ep->timeaio);
+ nni_aio_fini(&ep->connaio);
nni_mtx_fini(&ep->mtx);
NNI_FREE_STRUCT(ep);
@@ -685,7 +685,7 @@ sfd_tran_ep_close(void *arg)
nni_mtx_lock(&ep->mtx);
ep->closed = true;
- nni_aio_close(ep->timeaio);
+ nni_aio_close(&ep->timeaio);
if (ep->listener != NULL) {
nng_stream_listener_close(ep->listener);
}
@@ -710,8 +710,8 @@ static void
sfd_tran_timer_cb(void *arg)
{
sfd_tran_ep *ep = arg;
- if (nni_aio_result(ep->timeaio) == 0) {
- nng_stream_listener_accept(ep->listener, ep->connaio);
+ if (nni_aio_result(&ep->timeaio) == 0) {
+ nng_stream_listener_accept(ep->listener, &ep->connaio);
}
}
@@ -719,7 +719,7 @@ static void
sfd_tran_accept_cb(void *arg)
{
sfd_tran_ep *ep = arg;
- nni_aio *aio = ep->connaio;
+ nni_aio *aio = &ep->connaio;
sfd_tran_pipe *p;
int rv;
nng_stream *conn;
@@ -743,7 +743,7 @@ sfd_tran_accept_cb(void *arg)
goto error;
}
sfd_tran_pipe_start(p, conn, ep);
- nng_stream_listener_accept(ep->listener, ep->connaio);
+ nng_stream_listener_accept(ep->listener, &ep->connaio);
nni_mtx_unlock(&ep->mtx);
return;
@@ -758,12 +758,12 @@ error:
case NNG_ENOMEM:
case NNG_ENOFILES:
- nng_sleep_aio(10, ep->timeaio);
+ nng_sleep_aio(10, &ep->timeaio);
break;
default:
if (!ep->closed) {
- nng_stream_listener_accept(ep->listener, ep->connaio);
+ nng_stream_listener_accept(ep->listener, &ep->connaio);
}
break;
}
@@ -819,13 +819,14 @@ sfd_tran_listener_init(void **lp, nng_url *url, nni_listener *nlistener)
return (rv);
}
- if (((rv = nni_aio_alloc(&ep->connaio, sfd_tran_accept_cb, ep)) !=
- 0) ||
- ((rv = nni_aio_alloc(&ep->timeaio, sfd_tran_timer_cb, ep)) != 0) ||
- ((rv = nng_stream_listener_alloc_url(&ep->listener, url)) != 0)) {
+ nni_aio_init(&ep->connaio, sfd_tran_accept_cb, ep);
+ nni_aio_init(&ep->timeaio, sfd_tran_timer_cb, ep);
+
+ if ((rv = nng_stream_listener_alloc_url(&ep->listener, url)) != 0) {
sfd_tran_ep_fini(ep);
return (rv);
}
+
#ifdef NNG_ENABLE_STATS
nni_listener_add_stat(nlistener, &ep->st_rcv_max);
#endif
@@ -911,7 +912,7 @@ sfd_tran_ep_accept(void *arg, nni_aio *aio)
ep->useraio = aio;
if (!ep->started) {
ep->started = true;
- nng_stream_listener_accept(ep->listener, ep->connaio);
+ nng_stream_listener_accept(ep->listener, &ep->connaio);
} else {
sfd_tran_ep_match(ep);
}