aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/pubsub
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol/pubsub')
-rw-r--r--src/protocol/pubsub/pub.c36
-rw-r--r--src/protocol/pubsub/sub.c9
2 files changed, 11 insertions, 34 deletions
diff --git a/src/protocol/pubsub/pub.c b/src/protocol/pubsub/pub.c
index 161a5d79..940f2139 100644
--- a/src/protocol/pubsub/pub.c
+++ b/src/protocol/pubsub/pub.c
@@ -53,20 +53,13 @@ static int
nni_pub_sock_init(void **pubp, nni_sock *sock)
{
nni_pub_sock *pub;
- int rv;
if ((pub = NNI_ALLOC_STRUCT(pub)) == NULL) {
return (NNG_ENOMEM);
}
- if ((rv = nni_mtx_init(&pub->mtx)) != 0) {
- nni_pub_sock_fini(pub);
- return (rv);
- }
- rv = nni_aio_init(&pub->aio_getq, nni_pub_sock_getq_cb, pub);
- if (rv != 0) {
- nni_pub_sock_fini(pub);
- return (rv);
- }
+ nni_mtx_init(&pub->mtx);
+ nni_aio_init(&pub->aio_getq, nni_pub_sock_getq_cb, pub);
+
pub->sock = sock;
pub->raw = 0;
NNI_LIST_INIT(&pub->pipes, nni_pub_pipe, node);
@@ -127,31 +120,18 @@ nni_pub_pipe_init(void **ppp, nni_pipe *pipe, void *psock)
}
// XXX: consider making this depth tunable
if ((rv = nni_msgq_init(&pp->sendq, 16)) != 0) {
- goto fail;
- }
-
- rv = nni_aio_init(&pp->aio_getq, nni_pub_pipe_getq_cb, pp);
- if (rv != 0) {
- goto fail;
+ NNI_FREE_STRUCT(pp);
+ return (rv);
}
- rv = nni_aio_init(&pp->aio_send, nni_pub_pipe_send_cb, pp);
- if (rv != 0) {
- goto fail;
- }
+ nni_aio_init(&pp->aio_getq, nni_pub_pipe_getq_cb, pp);
+ nni_aio_init(&pp->aio_send, nni_pub_pipe_send_cb, pp);
+ nni_aio_init(&pp->aio_recv, nni_pub_pipe_recv_cb, pp);
- rv = nni_aio_init(&pp->aio_recv, nni_pub_pipe_recv_cb, pp);
- if (rv != 0) {
- goto fail;
- }
pp->pipe = pipe;
pp->pub = psock;
*ppp = pp;
return (0);
-
-fail:
- nni_pub_pipe_fini(pp);
- return (rv);
}
static int
diff --git a/src/protocol/pubsub/sub.c b/src/protocol/pubsub/sub.c
index 53f01e0f..78b9d157 100644
--- a/src/protocol/pubsub/sub.c
+++ b/src/protocol/pubsub/sub.c
@@ -95,16 +95,13 @@ static int
nni_sub_pipe_init(void **spp, nni_pipe *pipe, void *ssock)
{
nni_sub_pipe *sp;
- int rv;
if ((sp = NNI_ALLOC_STRUCT(sp)) == NULL) {
return (NNG_ENOMEM);
}
- if (((rv = nni_aio_init(&sp->aio_putq, nni_sub_putq_cb, sp)) != 0) ||
- ((rv = nni_aio_init(&sp->aio_recv, nni_sub_recv_cb, sp)) != 0)) {
- nni_sub_pipe_fini(sp);
- return (rv);
- }
+ nni_aio_init(&sp->aio_putq, nni_sub_putq_cb, sp);
+ nni_aio_init(&sp->aio_recv, nni_sub_recv_cb, sp);
+
sp->pipe = pipe;
sp->sub = ssock;
*spp = sp;