couple of bugs fixed

This commit is contained in:
Martin Sustrik 2009-09-04 09:51:42 +02:00
parent 4914e5c9d1
commit 103cbee6a5
5 changed files with 10 additions and 9 deletions

View File

@ -1,5 +1,9 @@
lib_LTLIBRARIES = libzmq.la
pkginclude_HEADERS = \
../include/zmq.h \
../include/zmq.hpp
libzmq_la_SOURCES = \
app_thread.hpp \
atomic_bitmap.hpp \
@ -29,7 +33,7 @@ libzmq_la_SOURCES = \
mutex.hpp \
object.hpp \
options.hpp \
owner.hpp \
owned.hpp \
pipe.hpp \
platform.hpp \
poll.hpp \

View File

@ -81,7 +81,7 @@ int zmq::tcp_socket_t::write (const void *data, int size)
return 0;
// Signalise peer failure.
if (nbytes == -1 && errno == ECONNRESET)
if (nbytes == -1 && (errno == ECONNRESET || errno == EPIPE))
return -1;
errno_assert (nbytes != -1);

View File

@ -77,7 +77,6 @@ bool zmq::zmq_connecter_init_t::write (::zmq_msg_t *msg_)
void zmq::zmq_connecter_init_t::flush ()
{
// We are not expecting any messages. No point in flushing.
zmq_assert (false);
}
void zmq::zmq_connecter_init_t::detach ()

View File

@ -97,11 +97,8 @@ void zmq::zmq_engine_t::in_event ()
if (inpos < insize)
reset_pollin (handle);
// If at least one byte was processed, flush all messages the decoder
// may have produced.
if (nbytes > 0)
inout->flush ();
// Flush all messages the decoder may have produced.
inout->flush ();
}
void zmq::zmq_engine_t::out_event ()

View File

@ -62,7 +62,8 @@ bool zmq::zmq_listener_init_t::write (::zmq_msg_t *msg_)
void zmq::zmq_listener_init_t::flush ()
{
zmq_assert (has_peer_identity);
if (!has_peer_identity)
return;
// Initialisation is done. Disconnect the engine from the init object.
engine->unplug ();