From dba672d76fe170e52a13643d5c0fa65c4da5f27e Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Fri, 14 Dec 2018 10:43:44 -0500 Subject: [PATCH] fixit --- llarp/ev.hpp | 6 ++++++ llarp/ev_kqueue.hpp | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/llarp/ev.hpp b/llarp/ev.hpp index d495c4bc7..27f349f9b 100644 --- a/llarp/ev.hpp +++ b/llarp/ev.hpp @@ -456,6 +456,9 @@ namespace llarp flush_write_buffers(0); } + virtual void + before_flush_write(){}; + /// called in event loop when fd is ready for writing /// requeues anything not written /// this assumes fd is set to non blocking @@ -463,11 +466,14 @@ namespace llarp flush_write_buffers(size_t amount) { if(m_LossyWriteQueue) + { + before_flush_write(); m_LossyWriteQueue->Process([&](WriteBuffer& buffer) { do_write(buffer.buf, buffer.bufsz); // if we would block we save the entries for later // discard entry }); + } else if(m_BlockingWriteQueue) { if(amount) diff --git a/llarp/ev_kqueue.hpp b/llarp/ev_kqueue.hpp index f79c3547e..1fde15308 100644 --- a/llarp/ev_kqueue.hpp +++ b/llarp/ev_kqueue.hpp @@ -244,12 +244,11 @@ namespace llarp #endif void - flush_write() + before_flush_write() override { if(t->before_write) { t->before_write(t); - ev_io::flush_write(); } } @@ -258,7 +257,6 @@ namespace llarp { if(t->tick) t->tick(t); - flush_write(); return true; }