aboutsummaryrefslogtreecommitdiffstats
path: root/src/fdev.c
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2018-03-23 17:46:59 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2018-06-13 17:14:00 +0200
commite7e42ce9196e865a2dfd5a460932b0357885e603 (patch)
tree0e0ca685ca43a0db879f0b7d2e1dcdd3d013af7a /src/fdev.c
parente12c3008f10cf5d61cc3235af6562a007ff08e76 (diff)
fdev: Improve fdev handling with epoll
Change-Id: I53c6eb394772e40f87000a0e5383be923f5d15f1 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/fdev.c')
-rw-r--r--src/fdev.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/fdev.c b/src/fdev.c
index 8ad79b5f..a8f36956 100644
--- a/src/fdev.c
+++ b/src/fdev.c
@@ -76,7 +76,8 @@ void fdev_unref(struct fdev *fdev)
if (fdev && __atomic_sub_fetch(&fdev->refcount, 2, __ATOMIC_RELAXED) <= 1) {
if (fdev->itf) {
fdev->itf->disable(fdev->closure_itf, fdev);
- fdev->itf->unref(fdev->closure_itf);
+ if (fdev->itf->unref)
+ fdev->itf->unref(fdev->closure_itf);
}
if (fdev->refcount)
close(fdev->fd);
@@ -135,7 +136,7 @@ void fdev_set_events(struct fdev *fdev, uint32_t events)
if (events != fdev->events) {
fdev->events = events;
if (is_active(fdev))
- fdev->itf->enable(fdev->closure_itf, fdev);
+ fdev->itf->update(fdev->closure_itf, fdev);
}
}