pkarashchenko commented on a change in pull request #5624: URL: https://github.com/apache/incubator-nuttx/pull/5624#discussion_r817030722
########## File path: drivers/input/ajoystick.c ########## @@ -722,6 +720,19 @@ static int ajoy_poll(FAR struct file *filep, FAR struct pollfd *fds, opriv->ao_fds[i] = fds; fds->priv = &opriv->ao_fds[i]; + + /* Report if the event is pending */ + + if (opriv->ao_pollpending) + { + fds->revents |= (fds->events & POLLIN); + if (fds->revents != 0) + { + iinfo("Report events: %02x\n", fds->revents); + nxsem_post(fds->sem); Review comment: > No, the protocol require that fds must save into ao_fds if it return true regardless the semaphore post or not. You can see touchscreen_upper.c do the same thing: > https://github.com/apache/incubator-nuttx/blob/master/drivers/input/touchscreen_upper.c#L319-L324 > poll will call ajoy_poll with setup == false immediately after return. Thank you, I missed that. But what I see in the touchscreen example is that fd sem count is checked in prior to sem post and all poll waiters are notified. But in current changes it seems like behavior is different, isn't it? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org