Я использую AMQP-CPP lib с libev
backend. Я пытаюсь создать класс, который откроет соединение и будет потреблять. Я хочу запустить цикл соединения в рабочем потоке, чтобы не блокировать основной поток. Эта часть кода выглядит следующим образом
...
m_thread.reset(new std:thread([this]()
{
ev_run(m_loop, 0);
}));
...
Тогда в какой-то момент я хочу остановить цикл. Я прочитал, что это можно сделать с помощью функции ev_break()
. Однако его следует вызывать из того же потока, что и ev_run()
. Дальнейший поиск показал, что функция ev_async_send()
может сделать это, но я не могу понять, как это сделать.
Как я могу это сделать? Есть идеи?