Какова наилучшая практика использования из std::queue? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Какова наилучшая практика использования из std::queue? [закрыто]

Сообщение Anonymous »

В приложении есть прослушиватель и задача процессора. Задача прослушивателя должна помечать полученные сообщения метками времени и не должна блокироваться при обработке полученных данных. Я делаю это, как показано ниже.

Код: Выделить всё

void listenerTask()
{
while(true) {
uint8_t buffer[1024]= {0};
const auto receivedBytes = receive(buffer, sizeof(buffer));
const auto rxTimeStamp = std::chrono::steady_clock::now();

std::lock_guard lock(m_mutex);
m_queue.emplace(std::vector(buffer, buffer + receivedBytes), rxTimeStamp);
m_notifier.notify_one();
}
}

void processorTask()
{
while(true) {
const auto rxEntry = [&]() {
std::unique_lock lock(m_mutex);
m_notifier.wait(lock, [this] { return !m_queue.empty(); });

return m_queue.front();
}();

{
std::lock_guard lock(m_mutex);
m_queue.pop();
}

// TODO Process the received data
}
}
Как лучше всего выполнять такого рода операции?

Подробнее здесь: https://stackoverflow.com/questions/786 ... n-stdqueue
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»