2026-03-05 17:11:14 +01:00
parent 5f608af40e
commit 8bfe145afa

View File

@@ -95,10 +95,14 @@ bool ZMQSocket::SendZeroCopy(void *data, size_t size,void (*callback)(void *, vo
}
auto result = zmq_msg_send(&msg, socket, (blocking ? 0 : ZMQ_DONTWAIT));
zmq_msg_close(&msg);
if (result == size)
return true;
// https://libzmq.readthedocs.io/en/latest/zmq_msg_send.html
// zmq_msg_close only if it fails to send
if (result >= 0)
return true; // msg is now owned by ZMQ — do NOT close it
// Send failed — we must close the message ourselves
zmq_msg_close(&msg);
if ((errno == EAGAIN) || (errno == EINTR))
return false;