diff options
author | Timo Dörr <timo@latecrew.de> | 2013-10-16 16:31:41 +0200 |
---|---|---|
committer | Timo Dörr <timo@latecrew.de> | 2013-10-23 14:09:22 +0200 |
commit | c6ce5675b9af1b8d573afd9fb24ab74611f35644 (patch) | |
tree | 13cd414c49310e0f384974c816281190d7046a83 /ufo/ufo-zmq-messenger.c | |
parent | b68d5a3e3927498f0947db56cb4002962362872e (diff) |
Add MPI support
Diffstat (limited to 'ufo/ufo-zmq-messenger.c')
-rw-r--r-- | ufo/ufo-zmq-messenger.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/ufo/ufo-zmq-messenger.c b/ufo/ufo-zmq-messenger.c index 83b167f..32ba32e 100644 --- a/ufo/ufo-zmq-messenger.c +++ b/ufo/ufo-zmq-messenger.c @@ -21,6 +21,7 @@ #include <zmq.h> #include <string.h> +#include "zmq-shim.h" static void ufo_messenger_interface_init (UfoMessengerIface *iface); @@ -155,6 +156,7 @@ ufo_zmq_messenger_send_blocking (UfoMessenger *msger, frame->data_size = request_msg->data_size; frame->type = request_msg->type; + //TODO eliminate extra copying memcpy (frame->data, request_msg->data, request_msg->data_size); gint err = zmq_msg_send (&request, priv->zmq_socket, 0); @@ -180,8 +182,9 @@ ufo_zmq_messenger_send_blocking (UfoMessenger *msger, zmq_msg_t reply; zmq_msg_init (&reply); - gint size = zmq_msg_recv (&reply, priv->zmq_socket, 0); - if (size < 0) { + err = zmq_msg_recv (&reply, priv->zmq_socket, 0); + gint size = zmq_msg_size (&reply); + if (err < 0) { g_set_error (error, ufo_messenger_error_quark (), zmq_errno(), "Could not receive from %s: %s ", priv->remote_addr, zmq_strerror (zmq_errno ())); @@ -220,12 +223,13 @@ ufo_zmq_messenger_recv_blocking (UfoMessenger *msger, g_mutex_lock (priv->mutex); - UfoMessage *result; + UfoMessage *result = NULL; zmq_msg_t reply; zmq_msg_init (&reply); - gint size = zmq_msg_recv (&reply, priv->zmq_socket, 0); + gint err = zmq_msg_recv (&reply, priv->zmq_socket, 0); + gint size = zmq_msg_size (&reply); - if (size < 0) { + if (err < 0) { zmq_msg_close (&reply); g_set_error (error, ufo_messenger_error_quark(), zmq_errno(), "Could not receive from %s: %s ", priv->remote_addr, |