* Actually send the Redis queries queued by {FireAndForget,GetResultsOf}{Query,Queries}() */
| 449 | * Actually send the Redis queries queued by {FireAndForget,GetResultsOf}{Query,Queries}() |
| 450 | */ |
| 451 | void 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 |