From cf36ad55f7e30f048769ac18e296a5947ba99b34 Mon Sep 17 00:00:00 2001 From: Determinant Date: Sat, 6 Apr 2019 01:14:22 -0400 Subject: ... --- include/salticidae/event.h | 16 +++------------- include/salticidae/network.h | 3 ++- 2 files changed, 5 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/salticidae/event.h b/include/salticidae/event.h index 0600109..df49c58 100644 --- a/include/salticidae/event.h +++ b/include/salticidae/event.h @@ -488,19 +488,7 @@ class MPSCQueueEventDriven: public MPSCQueue { return true; } - template - bool try_enqueue(U &&e) { - static const uint64_t dummy = 1; - if (!MPSCQueue::try_enqueue(std::forward(e))) - return false; - // memory barrier here, so any load/store in enqueue must be finialized - if (wait_sig.exchange(false, std::memory_order_acq_rel)) - { - SALTICIDAE_LOG_DEBUG("mpsc notify"); - write(fd, &dummy, 8); - } - return true; - } + template bool try_enqueue(U &&e) = delete; }; template @@ -552,6 +540,8 @@ class MPMCQueueEventDriven: public MPMCQueue { } return true; } + + template bool try_enqueue(U &&e) = delete; }; class ThreadCall { diff --git a/include/salticidae/network.h b/include/salticidae/network.h index 2cef81d..1b871f5 100644 --- a/include/salticidae/network.h +++ b/include/salticidae/network.h @@ -451,7 +451,8 @@ void MsgNetwork::Conn::on_read() { } #endif auto conn = static_pointer_cast(self()); - while (!mn->incoming_msgs.try_enqueue(std::make_pair(msg, conn))); + while (!mn->incoming_msgs.enqueue(std::make_pair(msg, conn), false)) + std::this_thread::yield(); } } } -- cgit v1.2.3-70-g09d2