You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2021/04/05 16:55:02 UTC

[GitHub] [incubator-nuttx] v01d opened a new issue #3350: QUEUED SIGNAL ACTIONS ARE INAPPROPRIATELY DEFERRED

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:
users@infra.apache.org