summaryrefslogtreecommitdiff
path: root/src/xszmq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xszmq.cpp')
-rw-r--r--src/xszmq.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/xszmq.cpp b/src/xszmq.cpp
index d97d9ea..6b3930c 100644
--- a/src/xszmq.cpp
+++ b/src/xszmq.cpp
@@ -112,7 +112,22 @@ size_t zmq_msg_size (zmq_msg_t *msg)
void *zmq_init (int io_threads)
{
- return xs_init (io_threads);
+ void *ctx = xs_init ();
+ if (!ctx)
+ return NULL;
+
+ // Crossroads don't allow for zero I/O threads.
+ if (io_threads < 1)
+ io_threads = 1;
+
+ int rc = xs_setctxopt (ctx, XS_IO_THREADS, &io_threads,
+ sizeof (io_threads));
+ if (rc != 0) {
+ xs_term (ctx);
+ return NULL;
+ }
+
+ return ctx;
}
int zmq_term (void *context)