nuttx/sched/semaphore
Gregory Nutt 9568600ab1 Squashed commit of the following:
This commit backs out most of commit b4747286b1.  That change was added because sem_wait() would sometimes cause cancellation points inappropriated.  But with these recent changes, nxsem_wait() is used instead and it is not a cancellation point.

    In the OS, all calls to sem_wait() changed to nxsem_wait().  nxsem_wait() does not return errors via errno so each place where nxsem_wait() is now called must not examine the errno variable.

    In all OS functions (not libraries), change sem_wait() to nxsem_wait().  This will prevent the OS from creating bogus cancellation points and from modifying the per-task errno variable.

    sched/semaphore:  Add the function nxsem_wait().  This is a new internal OS interface.  It is functionally equivalent to sem_wait() except that (1) it is not a cancellation point, and (2) it does not set the per-thread errno value on return.
2017-10-04 15:22:27 -06:00
..
Make.defs sem_setprotocol: Handle a case of missing proxy for sem_setprotocol. Reorder so that (1) this error is avoided, and (2) >No proxy is needed if priority inheritance is not enabled. 2016-11-03 18:51:38 -06:00
sem_destroy.c Squashed commit of the following: 2017-10-03 15:35:24 -06:00
sem_holder.c Squashed commit of the following: 2017-10-04 15:22:27 -06:00
sem_initialize.c Squashed commit of the following: 2017-10-03 12:52:31 -06:00
sem_post.c Squashed commit of the following: 2017-10-04 15:22:27 -06:00
sem_recover.c Squashed commit of the following: 2017-10-03 12:52:31 -06:00
sem_reset.c Squashed commit of the following: 2017-10-03 15:35:24 -06:00
sem_setprotocol.c Squashed commit of the following: 2017-10-04 15:22:27 -06:00
sem_tickwait.c Squashed commit of the following: 2017-10-04 15:22:27 -06:00
sem_timedwait.c Squashed commit of the following: 2017-10-04 15:22:27 -06:00
sem_timeout.c Squashed commit of the following: 2017-10-03 12:52:31 -06:00
sem_trywait.c sem_wait() and sem_trywait() no longer modify the errno value UNLESS an error occurs. This allows these functions to be used internallly without clobbering the errno value. 2016-11-09 07:01:49 -06:00
sem_wait.c Squashed commit of the following: 2017-10-04 15:22:27 -06:00
sem_waitirq.c Squashed commit of the following: 2017-10-04 15:22:27 -06:00
semaphore.h Squashed commit of the following: 2017-10-03 12:52:31 -06:00
spinlock.c 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