I found the root cause: I did not read the data in my callback function!
Note that an event source set to SD_EVENT_ON will fire continuously
unless data is read from or written to the file descriptor to reset
the mask of events seen.

2017-08-23 17:21 GMT-07:00 Yong Li <sdliy...@gmail.com>:
> Hi all,
>
> I want to use the sd_event_add_io API to monitor a GPIO pin status
> change. This pin supports intrrupts(echo both > edge). And it works
> using the epoll code at https://gist.github.com/jadonk/2587524: The
> callback function will be called if there is data change on the pin.
>
> However, the sd_event_add_io does not work: the callback will always
> be triggered(without pin status change). I am using this example:
> http://0pointer.net/blog/introducing-sd-event.html. Just replace the
> fd = open("/sys/class/gpio/gpio34/value", O_RDWR | O_NONBLOCK); and
> replace EPOLLIN using EPOLLPRI.
>
> Any suggestions/comments?
>
>
> Thanks,
> Yong
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to