| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
Split _Thread_Restart() into _Thread_Restart_self() and
_Thread_Restart_other(). Move content of existing
_Thread_Restart_self() into new _Thread_Restart_self(). Avoid Giant
lock for thread restart. _Thread_Restart_self() is a no-return function
and used by _Thread_Global_construction().
Update #2555.
Update #2626.
|
|
|
|
|
| |
Update #2555.
Update #2626.
|
|
|
|
|
|
|
|
| |
This makes it possible to do thread state and thread life changes
together under protection of the thread state lock.
Update #2555.
Update #2626.
|
|
|
|
|
|
|
|
| |
This makes it possible to do thread state and thread life changes
together under protection of the thread state lock.
Update #2555.
Update #2626.
|
|
|
|
|
|
|
|
| |
Split _Thread_Close() into _Thread_Join() and _Thread_Cancel() to
prepare for a re-use in pthread_join() and pthread_cancel().
Update #2555.
Update #2626.
|
|
|
|
|
|
|
| |
Rework _Thread_Exit() to use _Thread_Change_life_locked().
Update #2555.
Update #2626.
|
|
|
|
|
| |
Update #2555.
Update #2626.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Update #2555.
Update #2626.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This makes it easier to add more states in the future.
Update #2555.
Update #2626.
|
|
|
|
|
|
|
|
|
|
| |
Added only for evaluation purposes. We have to compare the performance
against the ticket lock on the interesting platforms via
smptests/smplock01.
The following GCC shortcoming affects the MCS lock:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66867
|
| |
|
| |
|
| |
|
|
|
|
| |
Update #2555.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
In addition protect scheduler of thread by thread state lock. Enables
use of scheduler per-instance locks.
Update #2555.
|
| |
|
|
|
|
| |
Update #2556.
|
|
|
|
| |
Add _Thread_queue_Is_lock_owner() in case RTEMS_DEBUG is defined.
|
|
|
|
|
| |
Ensure matching lock acquire and release for SMP locks if RTEMS_DEBUG is
defined.
|
| |
|
|
|
|
|
|
|
|
|
| |
The priority inheritance and ceiling CORE mutexes wrongly used the FIFO
queueing discipline. Delete misleading _CORE_mutex_Is_priority(). Bug
introduced by 1e1a91ed11458ddbb27b94d0001d8f0fc2ef7a97.
Add test sptests/spmutex01, since no existing uni-processor test covered
the thread priority queueing discipline for CORE mutexes.
|
|
|
|
|
|
| |
Sorry, I should not fix warnings unmindfully.
This reverts commit 35c8efc9501b5f6b1a4dfeaa4b1aa6a1d6dbf08e.
|
|
|
|
|
| |
Properly set the needs_help to NULL in _Scheduler_SMP_Enqueue_ordered()
in case the thread is inserted into the ready set.
|
|
|
|
| |
Update #2555.
|
|
|
|
|
| |
Update #2555.
Update #2703.
|
|
|
|
| |
Remove the object location parameter.
|
| |
|
| |
|
|
|
|
|
| |
The _Objects_Information_table is statically initialized. So, we can
make it read-only.
|
| |
|
|
|
|
| |
Avoid out-of-bounds array access in case the object class is invalid.
|
|
|
|
|
| |
Update #2494.
Update #2555.
|
|
|
|
|
| |
Account for maximum message size alignment. Simplify
_CORE_message_queue_Initialize().
|
|
|
|
|
| |
Make the interrupt lock context the second parameter to avoid register
moves.
|
|
|
|
| |
Bug introduced by f27383a518836881b7b9b88e88d2e31d5b23d048.
|
|
|
|
|
|
| |
Start with a copy of the Priority SMP scheduler implementation.
Update #2510.
|
|
|
|
|
| |
Delete __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__ as a preparation to
restructure the CORE mutex variants and reduce the branch complexity.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Avoid Giant lock in _Objects_Get_name_as_string().
Update #2555.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Move message notification to end of critical section and delegate the
message queue release to the notification handler. It may do more
complex notification actions out of the critical section.
Update #2555.
|
|
|
|
| |
Move common code into _CORE_message_queue_Insert_message().
|