mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-14 02:57:47 +01:00
Merge pull request #326 from hurtonm/pipe_code_cleanup
pipe: code cleanup
This commit is contained in:
commit
29000d3b02
18
src/pipe.cpp
18
src/pipe.cpp
@ -255,13 +255,11 @@ void zmq::pipe_t::process_pipe_term ()
|
|||||||
state = terminating;
|
state = terminating;
|
||||||
outpipe = NULL;
|
outpipe = NULL;
|
||||||
send_pipe_term_ack (peer);
|
send_pipe_term_ack (peer);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
state = pending;
|
state = pending;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Delimiter happened to arrive before the term command. Now we have the
|
// Delimiter happened to arrive before the term command. Now we have the
|
||||||
// term command as well, so we can move straight to terminating state.
|
// term command as well, so we can move straight to terminating state.
|
||||||
@ -296,14 +294,12 @@ void zmq::pipe_t::process_pipe_term_ack ()
|
|||||||
// Simply deallocate the pipe. In terminated state we have to ack the
|
// Simply deallocate the pipe. In terminated state we have to ack the
|
||||||
// peer before deallocating this side of the pipe. All the other states
|
// peer before deallocating this side of the pipe. All the other states
|
||||||
// are invalid.
|
// are invalid.
|
||||||
if (state == terminating) ;
|
if (state == terminated) {
|
||||||
else if (state == double_terminated);
|
|
||||||
else if (state == terminated) {
|
|
||||||
outpipe = NULL;
|
outpipe = NULL;
|
||||||
send_pipe_term_ack (peer);
|
send_pipe_term_ack (peer);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
zmq_assert (false);
|
zmq_assert (state == terminating || state == double_terminated);
|
||||||
|
|
||||||
// We'll deallocate the inbound pipe, the peer will deallocate the outbound
|
// We'll deallocate the inbound pipe, the peer will deallocate the outbound
|
||||||
// pipe (which is an inbound pipe from its point of view).
|
// pipe (which is an inbound pipe from its point of view).
|
||||||
@ -351,7 +347,7 @@ void zmq::pipe_t::terminate (bool delay_)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If there are pending messages still availabe, do nothing.
|
// If there are pending messages still availabe, do nothing.
|
||||||
else if (state == pending && delay) {
|
else if (state == pending) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// We've already got delimiter, but not term command yet. We can ignore
|
// We've already got delimiter, but not term command yet. We can ignore
|
||||||
@ -371,11 +367,11 @@ void zmq::pipe_t::terminate (bool delay_)
|
|||||||
|
|
||||||
if (outpipe) {
|
if (outpipe) {
|
||||||
|
|
||||||
// Rollback any unfinished outbound messages.
|
// Drop any unfinished outbound messages.
|
||||||
rollback ();
|
rollback ();
|
||||||
|
|
||||||
// Push delimiter into the outbound pipe. Note that watermarks are not
|
// Write the delimiter into the pipe. Note that watermarks are not
|
||||||
// checked thus the delimiter can be written even though the pipe is full.
|
// checked; thus the delimiter can be written even when the pipe is full.
|
||||||
msg_t msg;
|
msg_t msg;
|
||||||
msg.init_delimiter ();
|
msg.init_delimiter ();
|
||||||
outpipe->write (msg, false);
|
outpipe->write (msg, false);
|
||||||
|
Loading…
Reference in New Issue
Block a user