diff --git a/README.md b/README.md index 50d93b4..024c56c 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,12 @@ | `response_size` | Размер ответа в байтах | | `response_ready` | Флаг: 0 (ожидание), 1 (ответ готов) | ---- \ No newline at end of file +--- + +### 🔥 Пошаговый обмен: + +1. Клиент заполняет `Command` структуры (устанавливает поля, сбрасывает `response_ready = 0`). +2. Клиент `push_batch()` пачку команд в `SharedCommandQueue`. +3. Сервер `try_pop_batch()`, обрабатывает. +4. Сервер пишет результат обратно в поля `Command` (`response`, `response_size`, `response_ready=1`). +5. Клиент ждет готовности (`response_ready.load() == 1`) и читает результат. diff --git a/core/UDB.cpp b/core/UDB.cpp index 862096a..060a086 100644 --- a/core/UDB.cpp +++ b/core/UDB.cpp @@ -31,17 +31,6 @@ namespace usub::core compactor_.run(); } - // { - // if (create_new) - // new(this->shm_manager_.base_ptr()) SharedCommandQueue(this->shm_queue_capacity_); - // this->command_queue_ = reinterpret_cast(this->shm_manager_.base_ptr()); - // - // recover_from_logs(); - // - // this->background_flush_thread_ = std::thread(&UDB::background_flush_worker, this); - // compactor_.run(); - // } - UDB::~UDB() { running_ = false;