ghaerr commented on issue #18566: URL: https://github.com/apache/nuttx/issues/18566#issuecomment-4782770447
> Out of curiosity, why is that? From @ppisa's suggestion, I now remember: the `select` is specified to "poll-only" with not even a minimal timeout. Without a forced timeout with no file descriptors ready, some OSes, including ELKS, won't reschedule until their time-slice expires. > As for the dragging, the code should not insist so hard on priorities. There should not be any busy-loop and ideally the code should be only event driven. There are no actual busy-loops; it happens that the Microwindows upper level ends up in a fast series of function calls, including MwSelect/select(), and specifies no blocking. Various mid-level routines are written around the requirement that `MwSelect` poll instead of wait for an event during certain operations (such as to determine when to start painting, etc). The select() call is necessary as it ends up kicking off other code that generates the event driven process internally. @Acfboy, you might try passing a minimal timeout to `select` in `MwSelect` in the !canBlock case for NuttX to see if that fixes the issue. On slower systems, such as ELKS with its 10ms minimum time-slice (unless nothing else is running), IIRC polling with no timeout helped the already-slow window-drag look more natural. We can ifdef this for what makes NuttX operate well. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
