summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/apimutexunlock.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* doxygen: Rename Score* groups in RTEMSScore*Sebastian Huber2019-04-041-1/+1
| | | | Update #3706
* score: Use self-contained API mutexSebastian Huber2017-12-041-13/+5
| | | | | | | | | | Use a self-contained recursive mutex for API_Mutex_Control. The API mutexes are protected against asynchronous thread cancellation. Add dedicated mutexes for libatomic and TOD. Close #2629. Close #2630.
* score: Unify CORE mutex seize/surrenderSebastian Huber2016-09-271-0/+1
| | | | | | Use the Thread_Control::resource_count for the no protocol mutexes. Merge the no protocol and priority inherit CORE mutex seize/surrender operations.
* score: Introduce Thread_queue_Lock_contextSebastian Huber2016-09-081-1/+1
| | | | | | Introduce Thread_queue_Lock_context to contain the context necessary for thread queue lock and thread wait lock acquire/release operations to reduce the Thread_Control size.
* score: Rework CORE inherit priority mutexSebastian Huber2016-05-301-2/+6
| | | | | Provide dedicated seize and surrender methods for inherit priority mutexes. This eliminates CORE_mutex_Attributes.
* score: Add _Thread_queue_Context_set_MP_callout()Sebastian Huber2016-05-301-1/+1
| | | | | | Add _Thread_queue_Context_set_MP_callout() to simplify _Thread_queue_Context_initialize(). This makes it possible to more easily add additional fields to Thread_queue_Context.
* score: Move thread queue MP callout to contextSebastian Huber2016-05-251-9/+6
| | | | | | | | Drop the multiprocessing (MP) dependent callout parameter from the thread queue extract, dequeue, flush and unblock methods. Merge this parameter with the lock context into new structure Thread_queue_Context. This helps to gets rid of the conditionally compiled method call helpers.
* score: Get rid of mp_id parameterSebastian Huber2016-05-251-1/+0
| | | | | Get rid of the mp_id parameter used for some thread queue methods. Use THREAD_QUEUE_QUEUE_TO_OBJECT() instead.
* score: Add Thread_Change_life()Sebastian Huber2016-05-201-6/+5
| | | | | | | | | Add _Thread_Change_life_locked() as a general function to alter the thread life state. Use it to implement _Thread_Set_life_protection() as a first step. Update #2555. Update #2626.
* score: Rework MP thread queue callout supportSebastian Huber2016-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Fine grained locking for mutexesSebastian Huber2015-05-191-7/+10
| | | | Update #2273.
* score: Use thread life protection for API mutexesSebastian Huber2014-03-311-10/+16
| | | | | This prevents that asynchronous thread deletion can lead to an unusable allocator or once mutex.
* score: Relax Giant lock usage for API mutexesSebastian Huber2014-03-311-4/+1
| | | | | It is no longer necessary to protect the workspace allocations with the Giant lock due to the thread life cycle re-implementation.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* score: Include missing header filesSebastian Huber2013-07-221-0/+1
|
* score misc: Score misc: Clean up Doxygen #10 (GCI 2012)Christopher Kerl2012-12-011-0/+8
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7983216
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-111-2/+0
| | | | | | | | | | | | Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
* 2011-08-02 Jennifer.Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett2011-08-021-1/+4
| | | | | | PR 1872 * score/src/apimutexlock.c, score/src/apimutexunlock.c: Added smp support to apimutex.
* 2007-11-09 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-11-091-12/+8
| | | | | * score/src/apimutexlock.c, score/src/apimutexunlock.c: Functions were in opposite files. Whoops!
* 2007-11-09 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-11-091-0/+34
* sapi/src/exinit.c, score/Makefile.am, score/include/rtems/score/apimutex.h: API Mutex calls should never have been inlined. Inlining them lead to many inlined copies of core mutex lock. This lead to over 2K savings in the SPARC/ERC32 minimum.exe. * score/src/apimutex.c, score/src/apimutexallocate.c, score/src/apimutexlock.c, score/src/apimutexunlock.c: New files.