• Martin Sustrik's avatar
    WIP: Socket migration between threads, new zmq_close() semantics · 05d90849
    Martin Sustrik authored
    Sockets may now be migrated between OS threads; sockets may not be used by
    more than one thread at any time. To migrate a socket to another thread the
    caller must ensure that a full memory barrier is called before using the
    socket from the target thread.
    
    The new zmq_close() semantics implement the behaviour discussed at:
    
    http://lists.zeromq.org/pipermail/zeromq-dev/2010-July/004244.html
    
    Specifically, zmq_close() is now deterministic and while it still returns
    immediately, it does not discard any data that may still be queued for
    sending. Further, zmq_term() will now block until all outstanding data has
    been sent.
    
    TODO: Many bugs have been introduced, needs testing. Further, SO_LINGER or
    an equivalent mechanism (possibly a configurable timeout to zmq_term())
    needs to be implemented.
    05d90849
Name
Last commit
Last update
..
Makefile.am Loading commit data...
atomic_counter.hpp Loading commit data...
atomic_ptr.hpp Loading commit data...
blob.hpp Loading commit data...
command.cpp Loading commit data...
command.hpp Loading commit data...
config.hpp Loading commit data...
ctx.cpp Loading commit data...
ctx.hpp Loading commit data...
decoder.hpp Loading commit data...
devpoll.cpp Loading commit data...
devpoll.hpp Loading commit data...
encoder.hpp Loading commit data...
epoll.cpp Loading commit data...
epoll.hpp Loading commit data...
err.cpp Loading commit data...
err.hpp Loading commit data...
fd.hpp Loading commit data...
forwarder.cpp Loading commit data...
forwarder.hpp Loading commit data...
fq.cpp Loading commit data...
fq.hpp Loading commit data...
i_engine.hpp Loading commit data...
i_inout.hpp Loading commit data...
i_poll_events.hpp Loading commit data...
io_object.cpp Loading commit data...
io_object.hpp Loading commit data...
io_thread.cpp Loading commit data...
io_thread.hpp Loading commit data...
ip.cpp Loading commit data...
ip.hpp Loading commit data...
kqueue.cpp Loading commit data...
kqueue.hpp Loading commit data...
lb.cpp Loading commit data...
lb.hpp Loading commit data...
libzmq.pc.in Loading commit data...
likely.hpp Loading commit data...
msg_content.hpp Loading commit data...
msg_store.cpp Loading commit data...
msg_store.hpp Loading commit data...
mutex.hpp Loading commit data...
object.cpp Loading commit data...
object.hpp Loading commit data...
options.cpp Loading commit data...
options.hpp Loading commit data...
owned.cpp Loading commit data...
owned.hpp Loading commit data...
pair.cpp Loading commit data...
pair.hpp Loading commit data...
pgm_receiver.cpp Loading commit data...
pgm_receiver.hpp Loading commit data...
pgm_sender.cpp Loading commit data...
pgm_sender.hpp Loading commit data...
pgm_socket.cpp Loading commit data...
pgm_socket.hpp Loading commit data...
pipe.cpp Loading commit data...
pipe.hpp Loading commit data...
poll.cpp Loading commit data...
poll.hpp Loading commit data...
poller.hpp Loading commit data...
prefix_tree.cpp Loading commit data...
prefix_tree.hpp Loading commit data...
pub.cpp Loading commit data...
pub.hpp Loading commit data...
pull.cpp Loading commit data...
pull.hpp Loading commit data...
push.cpp Loading commit data...
push.hpp Loading commit data...
queue.cpp Loading commit data...
queue.hpp Loading commit data...
rep.cpp Loading commit data...
rep.hpp Loading commit data...
req.cpp Loading commit data...
req.hpp Loading commit data...
select.cpp Loading commit data...
select.hpp Loading commit data...
semaphore.hpp Loading commit data...
session.cpp Loading commit data...
session.hpp Loading commit data...
signaler.cpp Loading commit data...
signaler.hpp Loading commit data...
socket_base.cpp Loading commit data...
socket_base.hpp Loading commit data...
stdint.hpp Loading commit data...
streamer.cpp Loading commit data...
streamer.hpp Loading commit data...
sub.cpp Loading commit data...
sub.hpp Loading commit data...
tcp_connecter.cpp Loading commit data...
tcp_connecter.hpp Loading commit data...
tcp_listener.cpp Loading commit data...
tcp_listener.hpp Loading commit data...
tcp_socket.cpp Loading commit data...
tcp_socket.hpp Loading commit data...
thread.cpp Loading commit data...
thread.hpp Loading commit data...
uuid.cpp Loading commit data...
uuid.hpp Loading commit data...
windows.hpp Loading commit data...
wire.hpp Loading commit data...
xrep.cpp Loading commit data...
xrep.hpp Loading commit data...
xreq.cpp Loading commit data...
xreq.hpp Loading commit data...
yarray.hpp Loading commit data...
yarray_item.hpp Loading commit data...
ypipe.hpp Loading commit data...
yqueue.hpp Loading commit data...
zmq.cpp Loading commit data...
zmq_connecter.cpp Loading commit data...
zmq_connecter.hpp Loading commit data...
zmq_decoder.cpp Loading commit data...
zmq_decoder.hpp Loading commit data...
zmq_encoder.cpp Loading commit data...
zmq_encoder.hpp Loading commit data...
zmq_engine.cpp Loading commit data...
zmq_engine.hpp Loading commit data...
zmq_init.cpp Loading commit data...
zmq_init.hpp Loading commit data...
zmq_listener.cpp Loading commit data...
zmq_listener.hpp Loading commit data...