nuttx/sched
Gregory Nutt cfb876263a SMP: There were certain conditions that we must avoid by preventing releasing the pending tasks while withn a critical section. But this logic was incomplete; there was no logic to prevent other CPUs from adding new, running tasks while on CPU is in a critical section.
This commit corrects this.  This is matching logic in sched_addreadytorun to avoid starting new tasks within the critical section (unless the CPU is the holder of the lock).  The holder of the IRQ lock must be permitted to do whatever it needs to do.
2016-12-27 08:49:07 -06:00
..
clock sched/clock: Correct calculation for the case of Tickless mode with a 32-bit timer. In that case, the calculation was returning millisecond accuracy. That is not good when the timer accuracy is < 1 msec. 2016-11-19 09:55:21 -06:00
environ sched/: Review and correct some stylistic inconsistencies 2016-08-07 08:25:30 -06:00
errno Remove some empty file section section header comments 2016-02-17 18:05:03 -06:00
group Fix DEBUGASSERT() in group_signal.c 2016-12-04 06:52:08 -06:00
init Fix some SMP-related compilation errors 2016-12-09 17:10:59 -06:00
irq SMP: Enforce this rule: Tasks which are normally restored when sched_unlock() is called must remain pending (1) if we are in a critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs still have pre-emption disabled, i.e., g_cpu_schedlock is locked. In those cases, the release of the pending tasks must be deferred until those conditions are met. 2016-12-26 08:15:02 -06:00
module Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
mqueue Grrr... cloned typos! 2016-12-10 09:45:55 -06:00
paging Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
pthread Add task_testcancel() 2016-12-10 16:34:14 -06:00
sched SMP: There were certain conditions that we must avoid by preventing releasing the pending tasks while withn a critical section. But this logic was incomplete; there was no logic to prevent other CPUs from adding new, running tasks while on CPU is in a critical section. 2016-12-27 08:49:07 -06:00
semaphore SMP: There were certain conditions that we must avoid by preventing releasing the pending tasks while withn a critical section. But this logic was incomplete; there was no logic to prevent other CPUs from adding new, running tasks while on CPU is in a critical section. 2016-12-27 08:49:07 -06:00
signal Move cancellation point definitions to their own header file. 2016-12-10 09:08:26 -06:00
task Add task_testcancel() 2016-12-10 16:34:14 -06:00
timer sched/: Review and correct some stylistic inconsistencies 2016-08-07 08:32:11 -06:00
wdog Most interrupt handling logic interacts with tasks via standard mechanism such as sem_post, sigqueue, mq_send, etc. This all call enter_critical_section and are assumed to be safe in the SMP case. 2016-11-18 13:57:30 -06:00
wqueue Signal sent from work_signal() may interrupt the low priority worker thread that is already running. For example, the worker thread that is waiting for a semaphore could be woken up by the signal and break any synchronization assumption as a result. It also does not make any sense to send signal if it is already running and busy. This commit fixes it. 2016-11-06 08:00:12 -06:00
.gitignore .dSYM only needs to be in the same .gitignore files as .exe 2013-05-30 15:02:04 -06:00
Kconfig Cancellation points no longer depend on EXPERIMENTAL 2016-12-09 17:44:37 -06:00
Makefile TLS: Simplify 2016-03-11 07:17:32 -06:00