From 0a9f61f0fb43e09ae5bb807c7be73f24664d3a96 Mon Sep 17 00:00:00 2001 From: Lorenzo Fontana Date: Fri, 6 Sep 2019 18:16:35 +0200 Subject: [PATCH] new(userspace/falco): implement the output queue methods directly Co-Authored-By: Leonardo Di Donato Signed-off-by: Lorenzo Fontana --- userspace/falco/falco_output_queue.h | 11 ++++++++--- userspace/falco/grpc_server_impl.cpp | 7 +++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/userspace/falco/falco_output_queue.h b/userspace/falco/falco_output_queue.h index 09f9ec91..f2ef9803 100644 --- a/userspace/falco/falco_output_queue.h +++ b/userspace/falco/falco_output_queue.h @@ -32,9 +32,14 @@ public: return instance; } - falco_output_response_cq queue() + bool try_pop(falco_output_response& res) { - return m_queue; + return m_queue.try_pop(res); + } + + void push(falco_output_response& res) + { + m_queue.push(res); } private: @@ -48,4 +53,4 @@ private: public: falco_output_queue(falco_output_queue const&) = delete; void operator=(falco_output_queue const&) = delete; -}; \ No newline at end of file +}; diff --git a/userspace/falco/grpc_server_impl.cpp b/userspace/falco/grpc_server_impl.cpp index c8138683..6a06a430 100644 --- a/userspace/falco/grpc_server_impl.cpp +++ b/userspace/falco/grpc_server_impl.cpp @@ -37,18 +37,17 @@ void falco_grpc_server_impl::subscribe(const stream_context& ctx, const falco_ou } else { - auto m_event_queue = falco_output_queue::get().queue(); // Start (or continue) streaming // ctx.m_status == stream_context::STREAMING - if(m_event_queue.try_pop(res) && !req.keepalive()) + if(falco_output_queue::get().try_pop(res) && !req.keepalive()) { ctx.m_has_more = true; return; } - while(!m_event_queue.try_pop(res) && req.keepalive()) + while(!falco_output_queue::get().try_pop(res) && req.keepalive()) { } ctx.m_has_more = req.keepalive(); } -} \ No newline at end of file +}