MCPcopy Create free account
hub / github.com/Icinga/icinga2 / WriteLoop

Method WriteLoop

lib/icingadb/redisconnection.cpp:451–470  ·  view source on GitHub ↗

* Actually send the Redis queries queued by {FireAndForget,GetResultsOf}{Query,Queries}() */

Source from the content-addressed store, hash-verified

449 * Actually send the Redis queries queued by {FireAndForget,GetResultsOf}{Query,Queries}()
450 */
451void RedisConnection::WriteLoop(asio::yield_context& yc)
452{
453 for (;;) {
454 m_QueuedWrites.Wait(yc);
455
456 while (m_Queues.HasWrites()) {
457 auto queuedWrite(m_Queues.PopFront());
458 std::visit(
459 [this, &yc, &queuedWrite](const auto& item) {
460 if (WriteItem(item, yc)) {
461 RecordAffected(queuedWrite.Affects, Utility::GetTime());
462 }
463 },
464 queuedWrite.Item
465 );
466 }
467
468 m_QueuedWrites.Clear();
469 }
470}
471
472/**
473 * Periodically log current query performance

Callers

nothing calls this directly

Calls 4

WaitMethod · 0.80
HasWritesMethod · 0.80
PopFrontMethod · 0.80
ClearMethod · 0.45

Tested by

no test coverage detected