summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-18 18:29:41 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-18 18:32:06 -0800
commit8049d822b3d8ea8bd11793369004c638d833964e (patch)
treed4ebfef8b3b5d80c8693f71ac6cea3ff91dc12ba /src/core
parent1e4cf4e7c872a705a41bca66dd377ca2dbbe0d69 (diff)
downloadnng-8049d822b3d8ea8bd11793369004c638d833964e.tar.gz
nng-8049d822b3d8ea8bd11793369004c638d833964e.tar.bz2
nng-8049d822b3d8ea8bd11793369004c638d833964e.zip
fixes #12 SURVEY hang in Travis
Diffstat (limited to 'src/core')
-rw-r--r--src/core/msgqueue.c2
-rw-r--r--src/core/pipe.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/src/core/msgqueue.c b/src/core/msgqueue.c
index 344798d7..5f4bd333 100644
--- a/src/core/msgqueue.c
+++ b/src/core/msgqueue.c
@@ -466,7 +466,7 @@ nni_msgq_drain(nni_msgq *mq, nni_time expire)
nni_cv_wake(&mq->mq_writeable);
nni_cv_wake(&mq->mq_readable);
while (mq->mq_len > 0) {
- if (nni_cv_until(&mq->mq_drained, expire) == NNG_ETIMEDOUT) {
+ if (nni_cv_until(&mq->mq_drained, expire) != 0) {
break;
}
}
diff --git a/src/core/pipe.c b/src/core/pipe.c
index a1a423e7..39b4d012 100644
--- a/src/core/pipe.c
+++ b/src/core/pipe.c
@@ -187,6 +187,7 @@ nni_pipe_start(nni_pipe *pipe)
nni_mtx_lock(nni_idlock);
rv = nni_idhash_alloc(nni_pipes, &pipe->p_id, pipe);
nni_mtx_unlock(nni_idlock);
+
if (rv != 0) {
nni_pipe_bail(pipe);
nni_mtx_unlock(&sock->s_mx);
@@ -196,19 +197,20 @@ nni_pipe_start(nni_pipe *pipe)
if ((rv = sock->s_pipe_ops.pipe_add(pipe->p_proto_data)) != 0) {
nni_mtx_lock(nni_idlock);
nni_idhash_remove(nni_pipes, pipe->p_id);
- nni_mtx_unlock(nni_idlock);
pipe->p_id = 0;
+ nni_mtx_unlock(nni_idlock);
+
nni_pipe_bail(pipe);
nni_mtx_unlock(&sock->s_mx);
return (rv);
}
+ pipe->p_active = 1;
nni_list_append(&sock->s_pipes, pipe);
for (i = 0; i < NNI_MAXWORKERS; i++) {
nni_thr_run(&pipe->p_worker_thr[i]);
}
- pipe->p_active = 1;
// XXX: Publish event