mirror of
https://github.com/falcosecurity/falco.git
synced 2025-08-19 06:37:15 +00:00
new(userspace/falco): implement the output queue methods directly
Co-Authored-By: Leonardo Di Donato <leodidonato@gmail.com> Signed-off-by: Lorenzo Fontana <lo@linux.com>
This commit is contained in:
parent
43cd429967
commit
0a9f61f0fb
@ -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;
|
||||
};
|
||||
};
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user