Newer
Older
casic_unitree_dog / src / message_queue.cpp
//
// Created by casic on 25-3-5.
//

#include "message_queue.hpp"

void MessageQueue::enqueue(const std::vector<uint8_t> &command) {
    std::lock_guard lock(mutex_);
    queue_.push(command);
    cond_.notify_one();
}

std::vector<uint8_t> MessageQueue::dequeue() {
    std::unique_lock lock(mutex_);
    cond_.wait(lock, [this] { return !queue_.empty(); });
    std::vector<uint8_t> msg = queue_.front();
    queue_.pop();
    return msg;
}