Я перенес свое приложение C ++ из Linux в Windows, которое использует Libev. Но я получаю ошибку времени выполнения в моем коде, когда таймер запущен в коде libev … Пример кода, как показано ниже …
io.set<CHandlerAlwaysOn, &CHandlerAlwaysOn::callback>(this);
io.set(loop);
io.start(sfd,event);
//ev::timer tim;
tim.set<CHandlerAlwaysOn,&CHandlerAlwaysOn::cb_timeout>(this);
tim.set(loop);
tim.start(ntimeout,0.);
ev_run(loop,0);
Мы можем принимать соединения от клиентов, используя libev, ev :: io. Но я получаю исключение времени выполнения, когда оно касается кода ev :: timer.
Итак, мой вопрос: могу ли я преодолеть эту проблему в Windows? или это ограничение Libev для Windows … т.е. он поддерживает только сокеты, а не таймеры и т.д …
Да, мы можем использовать Timers of Libev в Windows также без каких-либо изменений для кода, который уже успешно работает в Linux … Это было доказано в моем проекте, который портирован на Windows из Linux с использованием C ++. Исключение, которое ранее встречалось в моем коде, связано не с таймерами, а с ошибочным использованием fd в функциях send и recv программирования сокетов. Libev — это действительно простая и отличная библиотека для использования на объектах, которые она поддерживает …
Других решений пока нет …