Socket.MakeSourceThis functor is meant to be as compatible as possible with lwt-zmq. It should be straight forward to write a functor over Async_zmq.Socket and Lwt_zmq.Socket.
The functor allows abstraction of the concurrency monad
module T : Deferred.TAn concurrent zeromq socket
of_socket s wraps the zeromq socket s
to_socket s extracts the raw zeromq socket from s
recv socket waits for a message on socket without blocking other concurrent threads
send socket sends a message on socket without blocking other concurrent threads
recv_all socket waits for a multi-part message on socket without blocking other concurrent threads
send_all socket m sends all parts of the multi-part message m on socket without blocking other concurrent threads
recv_msg socket waits for a message on socket without blocking other concurrent threads
send_msg socket sends a message on socket without blocking other concurrent threads
recv_msg_all socket waits for a multi-part message on socket without blocking other concurrent threads
send_msg_all socket m sends all parts of the multi-part message m on socket without blocking other concurrent threads