Проблема с парными bufferevents с libevent2 - PullRequest
1 голос
/ 02 июня 2011

У меня есть это многопоточное приложение с циклом для каждого потока и двумя парными буферными событиями на поток для отправки / получения данных между ними и основным потоком.

Это в теории. На практике bufferevent_pair_new () возвращает нормально, но создаются две структуры bufferevent без используемых дескрипторов, поэтому, когда я вызываю с ними bufferevent_getfd (), я получаю -1 для обоих.

Конечно, когда я пытаюсь присоединить их к циклу событий без какого-либо другого события, добавленного ранее, поток возвращается и возникает ошибка «цикл без событий».

Я видел нечто подобное в Tor (парные буферы событий для связи между потоками). Я делаю это правильно? Мне нужно что-то еще?

1 Ответ

0 голосов
/ 26 апреля 2013

Я знаю, что это старый вопрос, но я случайно нашел ответ в поиске другой информации, поэтому я решил опубликовать ее здесь, если кому-то все еще это нужно. Оригинальный ответ был здесь http://archives.seul.org/libevent/users/Jul-2011/msg00009.html

В случае, если это будет снято, я также подведу итоги.

У событий парного буфера нет внутренних событий, поэтому они не мешают циклу событий достигать состояния ожидания событий, и цикл завершается. В качестве обходного пути было добавлено событие таймера, которое ничего не делало. Это, однако, будет препятствовать завершению цикла. Была возможность исправить это так, чтобы парные события буфера препятствовали выходу из цикла, но я не знаю, было ли это когда-либо сделано. Сообщение, указанное выше, имеет ту же дату, что и оригинальное сообщение, возможно, это был даже ответ на ФП через другой ресурс.

...