Messages in this thread | | | Subject | Re: [PATCH v5 4/5] docs: counter: Document character device interface | From | David Lechner <> | Date | Mon, 12 Oct 2020 12:04:10 -0500 |
| |
On 10/8/20 7:28 AM, William Breathitt Gray wrote: > On Thu, Oct 08, 2020 at 10:09:09AM +0200, Pavel Machek wrote: >> Hi! >> >>> + int main(void) >>> + { >>> + struct pollfd pfd = { .events = POLLIN }; >>> + struct counter_event event_data[2]; >>> + >>> + pfd.fd = open("/dev/counter0", O_RDWR); >>> + >>> + ioctl(pfd.fd, COUNTER_SET_WATCH_IOCTL, watches); >>> + ioctl(pfd.fd, COUNTER_SET_WATCH_IOCTL, watches + 1); >>> + ioctl(pfd.fd, COUNTER_LOAD_WATCHES_IOCTL); >>> + >>> + for (;;) { >>> + poll(&pfd, 1, -1); >> >> Why do poll, when you are doing blocking read? >> >>> + read(pfd.fd, event_data, sizeof(event_data)); >> >> Does your new chrdev always guarantee returning complete buffer? >> >> If so, should it behave like that? >> >> Best regards, >> Pavel >> -- >> (english) http://www.livejournal.com/~pavelmachek >> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html > > I suppose you're right: a poll() should be redundant now with this > version of the character device implementation because buffers will > always return complete; so a blocking read() should achieve the same > behavior that a poll() with read() would. > > I'll give some more time for additional feedback to come in for this > version of the patchset, and then likely remove support for poll() in > the v6 submission. > > William Breathitt Gray >
I hope that you mean that you will just remove it from the example and not from the chardev. Otherwise it won't be possible to integrate this with an event loop.
| |