summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/mutex.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Rework MP thread queue callout supportSebastian Huber2016-04-061-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The thread queue implementation was heavily reworked to support SMP. This broke the multiprocessing support of the thread queues. This is fixed by this patch. A thread proxy is unblocked due to three reasons 1) timeout, 2) request satisfaction, and 3) extraction. In case 1) no MPCI message must be sent. This is ensured via the _Thread_queue_MP_callout_do_nothing() callout set during _Thread_MP_Allocate_proxy(). In case 2) and 3) an MPCI message must be sent. In case we interrupt the blocking operation during _Thread_queue_Enqueue_critical(), then this message must be sent by the blocking thread. For this the new fields Thread_Proxy_control::thread_queue_callout and Thread_Proxy_control::thread_queue_id are used. Delete the individual API MP callout types and use Thread_queue_MP_callout throughout. This type is only defined in multiprocessing configurations. Prefix the multiprocessing parameters with mp_ to ease code review. Multiprocessing specific parameters are optional due to use of a similar macro pattern. There is no overhead for non-multiprocessing configurations.
* score: Fix resource count for self-contained mutexSebastian Huber2015-09-141-2/+3
|
* score: Implement priority boostingSebastian Huber2015-09-041-5/+10
|
* score: Fix return status of mutex try acquireSebastian Huber2015-09-011-9/+9
| | | | This fixes a copy and paste error (from libbsd).
* score: Add self-contained mutex implementationSebastian Huber2015-07-301-0/+442
This mutex implementation uses a thread priority queue with a simple priority inheritance mechanism (similar to the object based mutexes). The storage space must be supplied by the user (16 bytes on 32-bit targets).