| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Accept all priority values in pthread_mutexattr_setprioceiling(). This
is in line with POSIX and FreeBSD. The priority is validated in
pthread_mutex_init(). Validate the priority only for priority ceiling
mutexes.
|
|
|
|
| |
updates #2608.
|
|
|
|
| |
Update #2738.
|
| |
|
|
|
|
|
|
| |
Enable for all configurations since it pulls in no additional
dependencies. Return value of the scheduler instance of the executing
thread.
|
|
|
|
| |
Close #2734.
|
|
|
|
| |
Close #2735.
|
|
|
|
|
|
| |
Return the unmodified thread priority value according to POSIX.
Close #2736.
|
|
|
|
|
| |
Provide dedicated seize and surrender methods for inherit priority
mutexes. This eliminates CORE_mutex_Attributes.
|
|
|
|
|
| |
Rework seize and surrender methods to use CORE_ceiling_mutex_Control.
This eliminates CORE_mutex_Disciplines.
|
|
|
|
|
|
|
|
| |
Add CORE_recursive_mutex_Control and CORE_ceiling_mutex_Control to avoid
the run-time evaluation of attributes to figure out how a particular
mutex methods should behave. Start with the no protocol variants. This
eliminates the CORE_MUTEX_DISCIPLINES_FIFO and
CORE_MUTEX_DISCIPLINES_PRIORITY disciplines.
|
| |
|
|
|
|
| |
Avoid use of internal mutex methods for pthread_mutex_setprioceiling().
|
|
|
|
| |
Avoid use of internal mutex methods for condition variables.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Move the safety check performed by
_CORE_mutex_Check_dispatch_for_seize() out of the performance critical
path and generalize it. Blocking on a thread queue with an unexpected
thread dispatch disabled level is illegal in all system states.
Add the expected thread dispatch disable level (which may be 1 or 2
depending on the operation) to Thread_queue_Context and use it in
_Thread_queue_Enqueue_critical().
|
|
|
|
|
|
|
|
|
|
|
| |
Unify the status codes of the Classic and POSIX API to use the new enum
Status_Control. This eliminates the Thread_Control::Wait::timeout_code
field and the timeout parameter of _Thread_queue_Enqueue_critical() and
_MPCI_Send_request_packet(). It gets rid of the status code translation
tables and instead uses simple bit operations to get the status for a
particular API. This enables translation of status code constants at
compile time. Add _Thread_Wait_get_status() to avoid direct access of
thread internal data structures.
|
|
|
|
| |
Close #2721.
|
|
|
|
| |
Close #2720.
|
|
|
|
| |
Close #2719.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Get rid of the mp_id parameter used for some thread queue methods. Use
THREAD_QUEUE_QUEUE_TO_OBJECT() instead.
|
| |
|
|
|
|
| |
Close #2718.
|
|
|
|
| |
Delete unused parameter.
|
|
|
|
| |
Delete unused parameter.
|
|
|
|
|
| |
Uniformly use *_Get() to get an object by identifier with a lock
context.
|
| |
|
| |
|
|
|
|
| |
Update #2555.
|
|
|
|
|
|
|
|
| |
Add Thread_Life_state::THREAD_LIFE_CHANGE_DEFERRED and rework the POSIX
thread cancellation to use the thread life states.
Update #2555.
Update #2626.
|
|
|
|
| |
Update #2555.
|
|
|
|
|
|
|
|
|
| |
Rework pthread_join() to use _Thread_Join().
Close #2402.
Update #2555.
Update #2626.
Close #2714.
|
|
|
|
|
|
|
|
| |
Disable thread dispatching is enough to prevent deletion of the
executing thread. There is no need for an additional life protection.
Update #2555.
Update #2626.
|
|
|
|
|
|
|
|
| |
The goal is to make _Thread_Exit() a no-return function in follow up
patches.
Update #2555.
Update #2626.
|
|
|
|
|
|
| |
POSIX mandates that an error code is returned and not -1 plus errno.
Close #2715.
|
|
|
|
|
|
|
| |
POSIX recommends ESRCH in case no thread exists for the specified
identifier.
Close #2713.
|
|
|
|
|
|
|
|
| |
Avoid Giant lock for pthread_getattr_np(), pthread_setschedparam() and
pthread_getschedparam(). Replace POSIX threads scheduler lock with
thread state lock.
Update #2555.
|
|
|
|
| |
Update #2555.
|
|
|
|
| |
Update #2555.
|
|
|
|
| |
Update #2556.
|
| |
|
|
|
|
| |
Update #2555.
|
|
|
|
|
| |
Make the interrupt lock context the second parameter to avoid register
moves.
|
|
|
|
|
| |
Update #2555.
Update #2690.
|
|
|
|
|
|
|
| |
The _Thread_queue_Enqueue_critical() already deals with thread
dispatching.
Update #2555.
|
|
|
|
|
|
| |
Remove support for strict order mutexes.
Close #2124.
|
|
|
|
|
| |
Update #2555.
Update #2630.
|
|
|
|
|
|
|
| |
Rename _TOD_Set() into _TOD_Set_with_timespec(). Rename
_TOD_Set_with_timestamp() into _TOD_Set(). This is now in line with
_TOD_Get() and _TOD_Get_as_timespec(). The timestamp is the canonical
format.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mq_open() function returns a descriptor to a POSIX message queue
object identified by a name. This is similar to sem_open(). In
contrast to the POSIX semaphore the POSIX message queues use a separate
object for the descriptor. This extra object is superfluous, since the
object identifier can be used directly for this purpose, just like for
the semaphores.
Update #2702.
Update #2555.
|