summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/zmq.h1
-rw-r--r--src/socket_base.cpp5
2 files changed, 6 insertions, 0 deletions
diff --git a/include/zmq.h b/include/zmq.h
index 1d99254..321b0ac 100644
--- a/include/zmq.h
+++ b/include/zmq.h
@@ -181,6 +181,7 @@ ZMQ_EXPORT int zmq_term (void *context);
#define ZMQ_RCVBUF 12
#define ZMQ_NOBLOCK 1
+#define ZMQ_TBC 2
ZMQ_EXPORT void *zmq_socket (void *context, int type);
ZMQ_EXPORT int zmq_close (void *s);
diff --git a/src/socket_base.cpp b/src/socket_base.cpp
index f038dc9..40e0ccc 100644
--- a/src/socket_base.cpp
+++ b/src/socket_base.cpp
@@ -311,6 +311,11 @@ int zmq::socket_base_t::connect (const char *addr_)
int zmq::socket_base_t::send (::zmq_msg_t *msg_, int flags_)
{
+ // ZMQ_TBC is actually a message flag, not a real send-flag
+ // such as ZMQ_NOBLOCK. At this point we impose it on the message.
+ if (flags_ & ZMQ_TBC)
+ msg_->flags |= ZMQ_MSG_TBC;
+
// Process pending commands, if any.
app_thread->process_commands (false, true);