Описание тега libev
Полнофункциональный и высокопроизводительный цикл обработки событий, который смоделирован на основе libevent, но без его ограничений и ошибок. Он используется, среди прочего, в пакетах GNU Virtual Private Ethernet и rxvt-unicode, а также в сервере и клиенте Deliantra MORPG.
2
ответа
Libev C++ не может остановить динамические циклы в многопоточном приложении
Я пишу многопоточный сервер с C++ и libev и имеет одну проблему. Я запускаю default_loop в главном потоке и создаю и запускаю dynamic_loop в каждом подчиненном потоке. Когда я обрабатываю сигналы для остановки процесса, я вызываю break_loop(ev::ALL)…
04 июн '15 в 09:10
1
ответ
Интеграция open62541 в существующий цикл событий libev
У меня есть приложение, которое широко использует libev для цикла обработки событий. Теперь я хотел бы добавить функциональность сервера OPC UA, но не уверен, как лучше интегрировать цикл событий open62541 в libev. На ум приходят следующие возможнос…
16 янв '19 в 08:55
3
ответа
Libev - обратные вызовы ввода / вывода
У меня есть чат-сервер в C/Linux с использованием сокетов TCP. При использовании libev я могу создать наблюдатель ev_io для событий чтения один раз для сокета. Что-то вроде: ev_io* new_watcher = (ev_io*)malloc(sizeof(ev_io)); //initialize the watche…
26 фев '12 в 09:15
0
ответов
Как вы принимаете соединение websocket с libwebsockets?
Все примеры, найденные в warmcat / libwebsockets, посвящены принятию http-запросов и обслуживанию веб-страниц / файлов. Я пытаюсь установить соединение через веб-сокет, например: ws://123.0.0.1/blah однако он никогда не установит соединение должным …
19 мар '18 в 20:27
1
ответ
Последовательный порт ttyUSB0 читать блок при использовании libev
У меня есть последовательный порт ttyUSB0, и открыть его с помощью NONBLOCK. fd = open(args_info.dev_arg, O_RDWR | O_NONBLOCK); использование read немедленно вернется, все в порядке. Но когда использовать Либев ev_io_init(&serial->recv_ctx-&g…
16 апр '18 в 10:50
1
ответ
Почему evbuffer_add_printf будет принимать только статические переменные, а не "динамические"?
До сих пор я получил свой код libev, чтобы успешно возвращать статическую строку с надписью "OMP OMP", однако, когда я пишу функцию, которая возвращает "статическую" строку, она никогда не работает. (Замечание: идея в том, чтобы превратить ту же фун…
27 янв '13 в 15:57
1
ответ
100% загрузка ЦП с libev
У меня есть TCP-сервер, который использует libev в качестве цикла событий; для новых принятых розеток я установил: ev_io_init(&conn->io, tcp_conn_on_event_cb, conn->fd, EV_READ | EV_WRITE); когда приходит новое соединение, мой сервер потре…
07 дек '16 в 13:54
1
ответ
Ошибка Libev при компиляции
Я пытаюсь скомпилировать код с флагами gcc -g -Wall -Wextra -DNDEBUG -pedantic -ansi и использовать библиотеку libev. Я получаю следующие ошибки в затмении: Description Resource Path Location Type expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ bef…
15 ноя '12 в 08:06
0
ответов
LIVEV с двумя ev_timer 100% процессора используется
Во -первых, мой английский очень плохой... это мой код: ev_timer_init(&m_netmsgpoptimer, netMsgTimer_cb, 10, 10.); ev_timer_start(m_loop, &m_netmsgpoptimer); m_mainlooptimer.data = (void*)this; // ev_timer_init(&m_mainlooptimer, mainloop…
25 дек '14 в 08:30
1
ответ
Использование синтетического дескриптора файла с EV (perl)
У меня есть объект файлового дескриптора, который создан таким образом (слегка отредактирован для ясности): sub TIEHANDLE { return $_[0] if ref($_[0]); my $class = shift; my $self = bless Symbol::gensym(), $class; return $self; } sub new { my ($clas…
03 июн '14 в 08:01
2
ответа
Используя libev с несколькими потоками
Я хочу использовать libev с несколькими потоками для обработки соединений tcp. То, что я хочу, это: Основной поток прослушивает входящие соединения, принимает соединения и перенаправляет соединение в рабочий поток. У меня есть пул рабочих потоков. К…
31 янв '13 в 08:19
1
ответ
Многопоточный сокет-сервер с использованием libev
Я реализую сервер сокетов. Все клиенты (до 10 КБ) должны оставаться на связи. Вот мой текущий дизайн: Основной поток создает цикл обработки событий (по умолчанию используется epoll) и наблюдатель для приема клиентов. Принять обратный звонокПримите f…
02 дек '13 в 14:40
1
ответ
Как ev_timer реализован в libev, используемом nodejs
setTimeout в nodejs реализован с помощью библиотеки языка c libev ev_timer. Как работает ev_timer? Это реализовано с помощью опроса? Если я установил тайм-аут в 30 секунд, проверяет ли какой-либо процесс каждые миллисекунды на время ожидания?
15 июн '16 в 03:13
1
ответ
Как получить новые добавленные файлы в папке, используя Inotify вместе с libev?
Моя программа (на C++) использует цикл событий libev. И мне нужно смотреть на определенную папку (скажем, foo) для новых файлов. Я не могу использовать Inotify::WaitForEvents() в режиме блокировки, потому что я не хочу блокировать цикл обработки соб…
21 июл '16 в 14:07
3
ответа
Ошибка чтения сертификата клиента OpenSSL при использовании libev с неблокирующими сокетами
Я потратил некоторое время на поиск в сети, чтобы найти лучший способ проанализировать и отладить мою проблему, но я не могу найти решение. Я решил спросить. Кратко. Я пытаюсь создать неблокирующий прокси-сервер пересылки ssl. Серверная часть прокси…
23 окт '12 в 14:00
1
ответ
Где ev_loop объявлен в либера?
Я изучаю libev, и ev_loop является очень важным компонентом libev. Но я искал исходные коды libev и просто не смог найти определение struct ev_loop. Итак, как должен выглядеть ev_loop? struct ev_loop { /* anything here? */ }
16 окт '12 в 16:32
2
ответа
std::list падает при обратном вызове libev
У меня есть функция обратного вызова libev write, которая проверяет ожидающие данные для отправки клиенту. Ожидание буфера данных выглядит как struct PendingData{ unsigned short data_size; char data[4096]; }; typedef std::list<PendingData*> Pe…
22 июн '12 в 21:32
1
ответ
Что означает чтение / запись в дескрипторе файла сокета? И почему обычные файлы не беспокоятся об этом?
Так как я недавно начал изучать libev, в io_watcher что я не совсем понимаю. Насколько мне известно, есть параметр в системном программировании Linux: O_ASYNC Сигнал (по умолчанию SIGIO) будет сгенерирован, когда указанный файл станет доступным для …
09 июл '15 в 10:16
1
ответ
printf() без '\n' не работает в libev
Сначала напишите код: #define EV_STANDALONE 1 #include <stdio.h> #include "ev.c" ev_timer timeout_watcher; struct ev_loop* loop; static void timeout_cb (EV_P_ ev_timer *w, int revents) { // puts("timeout"); printf("timeout"); ev_timer_again(lo…
02 июл '15 в 08:22
1
ответ
Эполл: он молча удаляет FDS?
Я читал исходный код libev и наткнулся на этот комментарий: а) epoll молча удаляет fds из набора fd. поскольку ничто не говорит нам о том, что иначе fd был удален, мы должны постоянно "перевооружать" fd, которые, как мы подозреваем, могли бы изменит…
28 окт '17 в 07:23