don't use 100% cpu

pull/13/head
Jeff Becker 6 years ago
parent df580f6106
commit 913fb1d88a
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -152,7 +152,7 @@ struct llarp_ev_loop
create_tun(llarp_tun_io* tun) = 0;
virtual bool
add_ev(llarp::ev_io* ev) = 0;
add_ev(llarp::ev_io* ev, bool write = false) = 0;
virtual bool
running() const = 0;

@ -296,11 +296,13 @@ struct llarp_epoll_loop : public llarp_ev_loop
}
bool
add_ev(llarp::ev_io* e)
add_ev(llarp::ev_io* e, bool write)
{
epoll_event ev;
ev.data.ptr = e;
ev.events = EPOLLIN | EPOLLOUT;
ev.events = EPOLLIN;
if(write)
ev.events |= EPOLLOUT;
if(epoll_ctl(epollfd, EPOLL_CTL_ADD, e->fd, &ev) == -1)
{
delete e;

@ -251,9 +251,12 @@ struct llarp_kqueue_loop : public llarp_ev_loop
}
bool
add_ev(llarp::ev_io* ev)
add_ev(llarp::ev_io* ev, bool write)
{
EV_SET(&change, ev->fd, EVFILT_READ | EVFILT_WRITE, EV_ADD, 0, 0, ev);
if(write)
EV_SET(&change, ev->fd, EVFILT_READ | EVFILT_WRITE, EV_ADD, 0, 0, ev);
else
EV_SET(&change, ev->fd, EVFILT_READ, EV_ADD, 0, 0, ev);
if(kevent(kqueuefd, &change, 1, nullptr, 0, nullptr) == -1)
{
delete ev;

Loading…
Cancel
Save