diff options
Diffstat (limited to 'src/xszmq.cpp')
-rw-r--r-- | src/xszmq.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/xszmq.cpp b/src/xszmq.cpp index 4146e45..350929d 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) |