summaryrefslogtreecommitdiff
path: root/src/pub.hpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2010-03-20 19:50:36 +0100
committerMartin Sustrik <sustrik@250bpm.com>2010-03-20 19:50:36 +0100
commit93bdb792a92b9bd235c7be47a13febf429568301 (patch)
tree18d84948e90a70b1e5ca81e53f3342643f892460 /src/pub.hpp
parentcbaf10978a8ffa98d98161aeec8d020c517b127b (diff)
PUB socket was blocking occassionally - fixed
Diffstat (limited to 'src/pub.hpp')
-rw-r--r--src/pub.hpp17
1 files changed, 9 insertions, 8 deletions
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 <class writer_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 <class writer_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&);