v01d opened a new issue #3350:
URL: https://github.com/apache/incubator-nuttx/issues/3350


   ```
     Description: The implement of nxsig_deliver() does the following in a loop:
                  - It takes the next next queued signal action from a list
                  - Calls the architecture-specific up_sigdeliver() to perform
                    the signal action (through some sleight of hand in
                    up_schedule_sigaction())
                  - up_sigdeliver() is a trampoline function that performs the
                    actual signal action as well as some housekeeping functions
                    then
                  - up_sigdeliver() performs a context switch back to the 
normal,
                    uninterrupted thread instead of returning to 
nxsig_deliver().
   
                  The loop in nxsig_deliver() then will have the opportunity to
                  run until when that normal, uninterrupted thread is suspended.
                  Then the loop will continue with the next queued signal
                  action.
   
                  Normally signals execute immediately.  The is the whole reason
                  why almost all blocking APIs return when a signal is received
                  (with errno equal to EINTR).
     Status:      Open
     Priority:    Low.  This design flaw has been around for ages and no one 
has yet
                  complained about it.  Apparently the visibility of the 
problem is
                  very low.
   ```


-- 
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to