Commit 9735fe76 authored by Dominik Charousset's avatar Dominik Charousset

removed debug output

parent c9cbffed
...@@ -117,12 +117,15 @@ class middleman_event_handler { ...@@ -117,12 +117,15 @@ class middleman_event_handler {
*/ */
void update(); void update();
std::vector<continuable*> readers();
bool has_reader(continuable* ptr); bool has_reader(continuable* ptr);
bool has_writer(continuable* ptr); bool has_writer(continuable* ptr);
template<typename F>
inline void for_each_reader(F fun) {
for (auto& meta : m_meta) if (meta.mask & event::read) fun(meta.ptr);
}
protected: protected:
std::vector<fd_meta_info> m_meta; // this vector is *always* sorted std::vector<fd_meta_info> m_meta; // this vector is *always* sorted
......
...@@ -343,8 +343,9 @@ void middleman_loop(middleman_impl* impl) { ...@@ -343,8 +343,9 @@ void middleman_loop(middleman_impl* impl) {
} }
CPPA_LOGF_DEBUG("event loop done, erase all readers"); CPPA_LOGF_DEBUG("event loop done, erase all readers");
// make sure to write everything before shutting down // make sure to write everything before shutting down
auto readers = handler->readers(); handler->for_each_reader([handler](continuable* ptr) {
for (auto reader : readers) { handler->erase_later(reader, event::read); } handler->erase_later(ptr, event::read);
});
handler->update(); handler->update();
CPPA_LOGF_DEBUG("flush outgoing messages"); CPPA_LOGF_DEBUG("flush outgoing messages");
CPPA_LOGF_DEBUG_IF(handler->num_sockets() == 0, CPPA_LOGF_DEBUG_IF(handler->num_sockets() == 0,
......
...@@ -141,27 +141,17 @@ void middleman_event_handler::update() { ...@@ -141,27 +141,17 @@ void middleman_event_handler::update() {
return iter != last && iter->fd == fd; return iter != last && iter->fd == fd;
}; };
// check whether elements in dispose list can be safely deleted // check whether elements in dispose list can be safely deleted
for (auto& elem : m_dispose_list) { for (auto elem : m_dispose_list) {
auto rd = elem->read_handle(); auto rd = elem->read_handle();
auto wr = elem->write_handle(); auto wr = elem->write_handle();
if ( (rd == wr && !is_alive(rd)) if ( (rd == wr && !is_alive(rd))
|| (rd != wr && !is_alive(rd) && !is_alive(wr))) { || (rd != wr && !is_alive(rd) && !is_alive(wr))) {
std::cout << "SAFE TO DISPOSE ELEMENT: " << elem << std::endl;
elem->dispose(); elem->dispose();
} }
else std::cout << "GOTTA KEEP ELEMENT: " << elem << std::endl;
} }
m_dispose_list.clear(); m_dispose_list.clear();
} }
std::vector<continuable*> middleman_event_handler::readers() {
std::vector<continuable*> result;
for (auto& meta : m_meta) {
if (meta.mask & event::read) result.push_back(meta.ptr);
}
return result;
}
bool middleman_event_handler::has_reader(continuable* ptr) { bool middleman_event_handler::has_reader(continuable* ptr) {
return std::any_of(m_meta.begin(), m_meta.end(), [=](fd_meta_info& meta) { return std::any_of(m_meta.begin(), m_meta.end(), [=](fd_meta_info& meta) {
return meta.ptr == ptr && (meta.mask & event::read); return meta.ptr == ptr && (meta.mask & event::read);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment