incubator-nuttx/sched/signal
Gregory Nutt e24f281401 This commit adds a new internal interfaces and fixes a problem with three APIs in the SMP configuration. The new internal interface is sched_cpu_pause(tcb). This function will pause a CPU if the task associated with 'tcb' is running on that CPU. This allows a different CPU to modify that OS data stuctures associated with the CPU. When the other CPU is resumed, those modifications can safely take place.
The three fixes are to handle cases in the SMP configuration where one CPU does need to make modifications to TCB and data structures on a task that could be running running on another CPU.  Those three cases are task_delete(), task_restart(), and execution of signal handles.  In all three cases the solutions is basically the same:  (1) Call sched_cpu_pause(tcb) to pause the CPU on which the task is running, (2) perform the necessary operations, then (3) call up_cpu_resume() to restart the paused CPU.
2016-11-20 07:57:18 -06:00
..
Make.defs signals: Adds a very limited, minimal implementation for SIGEV_THREAD 2015-12-30 15:01:14 -06:00
sig_action.c 1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code 2016-02-18 08:34:54 -06:00
sig_allocatependingsigaction.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
sig_cleanup.c 1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code 2016-02-18 08:34:54 -06:00
sig_deliver.c sched/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition. 2016-06-11 16:42:42 -06:00
sig_dispatch.c This commit adds a new internal interfaces and fixes a problem with three APIs in the SMP configuration. The new internal interface is sched_cpu_pause(tcb). This function will pause a CPU if the task associated with 'tcb' is running on that CPU. This allows a different CPU to modify that OS data stuctures associated with the CPU. When the other CPU is resumed, those modifications can safely take place. 2016-11-20 07:57:18 -06:00
sig_findaction.c 1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code 2016-02-18 08:34:54 -06:00
sig_initialize.c Standardize some naming in code section comments 2016-02-21 18:09:04 -06:00
sig_kill.c sched/: Replace explict references to g_readytorun with indirect references via the this_task() macro 2016-02-06 17:44:41 -06:00
sig_lowest.c Update TODO list 2016-02-17 16:51:58 -06:00
sig_mqnotempty.c sched/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition. 2016-06-11 16:42:42 -06:00
sig_nanosleep.c Explicitly initialize the group tg_exitsem with sem_init(). The existing logic worked because the correct initialization value is all zero, but it is better to initialize the semaphore explicitly. Noted by Jouko Holopainen. 2016-08-10 07:38:07 -06:00
sig_notification.c signals: Adds a very limited, minimal implementation for SIGEV_THREAD 2015-12-30 15:01:14 -06:00
sig_pause.c Update TODO list 2016-02-17 16:51:58 -06:00
sig_pending.c 1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code 2016-02-18 08:34:54 -06:00
sig_procmask.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
sig_queue.c sched/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition. 2016-06-11 16:42:42 -06:00
sig_releasependingsigaction.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
sig_releasependingsignal.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
sig_removependingsignal.c 1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code 2016-02-18 08:34:54 -06:00
sig_suspend.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
sig_timedwait.c nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 08:17:46 -06:00
sig_unmaskpendingsignal.c sched/: Replace explict references to g_readytorun with indirect references via the this_task() macro 2016-02-06 17:44:41 -06:00
sig_waitinfo.c Update TODO list 2016-02-17 16:51:58 -06:00
signal.h 1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code 2016-02-18 08:34:54 -06:00