diff --git a/src/test/msgr/test_msgr.cc b/src/test/msgr/test_msgr.cc index df849665a78b7a..a94c77125b294c 100644 --- a/src/test/msgr/test_msgr.cc +++ b/src/test/msgr/test_msgr.cc @@ -777,12 +777,24 @@ class SyntheticDispatcher : public Dispatcher { } void ms_handle_fast_connect(Connection *con) { - lock.Lock(); + Mutex::Locker l(lock); + list c = conn_sent[con]; + for (list::iterator it = c.begin(); + it != c.end(); ++it) + sent.erase(*it); + conn_sent.erase(con); got_connect = true; cond.Signal(); - lock.Unlock(); } - void ms_handle_fast_accept(Connection *con) { } + void ms_handle_fast_accept(Connection *con) { + Mutex::Locker l(lock); + list c = conn_sent[con]; + for (list::iterator it = c.begin(); + it != c.end(); ++it) + sent.erase(*it); + conn_sent.erase(con); + cond.Signal(); + } bool ms_dispatch(Message *m) { assert(0); }