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]

Reply via email to