From 93bdb792a92b9bd235c7be47a13febf429568301 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Sat, 20 Mar 2010 19:50:36 +0100 Subject: PUB socket was blocking occassionally - fixed --- src/pub.hpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/pub.hpp') diff --git a/src/pub.hpp b/src/pub.hpp index 89c1cd1..ac3924a 100644 --- a/src/pub.hpp +++ b/src/pub.hpp @@ -49,16 +49,17 @@ namespace zmq private: - // Outbound pipes, i.e. those the socket is sending messages to. - typedef yarray_t out_pipes_t; - out_pipes_t out_pipes; + // Write the message to the pipe. Make the pipe inactive if writing + // fails. In such a case false is returned. + bool write (class writer_t *pipe_, zmq_msg_t *msg_); - // Pointer to the pipe we are waiting for to became writable - // again; NULL if tha last send operation was successful. - class writer_t *stalled_pipe; + // Outbound pipes, i.e. those the socket is sending messages to. + typedef yarray_t pipes_t; + pipes_t pipes; - // Check whether we can write a message to all pipes. - bool check_write (); + // Number of active pipes. All the active pipes are located at the + // beginning of the pipes array. + pipes_t::size_type active; pub_t (const pub_t&); void operator = (const pub_t&); -- cgit v1.2.3