Hallo libevent users!

Sorry for all the noise but I could make it work correctly after configuring an 
edge on the GPIO line!

Thanks for all the job!

Guy Morand

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Morand, Guy
Sent: Dienstag, 25. August 2015 11:41
To: [email protected]
Subject: [Libevent-users] epoll fd in libevent

Hallo libevent developers,

I want to monitor GPIO lines under Linux and I'm using libevent. As I 
understand, for portability issues, it is not possible to monitor GPIOs with 
libevent because the "exception" event is not cross platform.

I saw in a thread of the libevent mailing list that it would be possible to 
create an epoll and register the file descriptor in libevent: 
http://archives.seul.org/libevent/users/Apr-2012/msg00026.html

I tried this solution but the problem is that I only get the "POLLPRI" event 
once at startup, despite I register the epoll fd in libevent with "EV_READ | 
EV_PERSIST".

Some code talks more than too many explanation, here is how I register the GPIO 
in epoll:
int EPollEventLoop::addExceptionHandler(libds::IIoHandler& handler)
{
    struct epoll_event event;

    // Init must be called
    assert(m_epollFd >= 0);

    // Add to epoll
    event.data.fd = handler.getIoHandle();
    event.events = EPOLLPRI;    
    if (epoll_ctl(m_epollFd, EPOLL_CTL_ADD, handler.getIoHandle(), &event) != 0)
    {
        ILog_msg(NULL, LOG_LEVEL_ERR, "Cannot add event to epoll %s", 
strerror(errno));
        return -1;
    }

    return 0;
}

I'm wondering if this solution is supposed to work or if I'm missing something 
like edge/level triggered. Anyone could achieve this?

Kind regards,

Guy Morand
***********************************************************************
To unsubscribe, send an e-mail to [email protected] with
unsubscribe libevent-users    in the body.
***********************************************************************
To unsubscribe, send an e-mail to [email protected] with
unsubscribe libevent-users    in the body.

Reply via email to