| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Avoid direct access to thread internal data fields.
|
|
|
|
| |
Update #2556.
|
|
|
|
| |
Update #2556.
|
|
|
|
|
|
|
| |
This makes it possible to add scheduler nodes to structures defined in
<rtems/score/thread.h>.
Update #2556.
|
|
|
|
| |
Optimize the enqueue to empty thread queue case.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This information turned out to be useless in the last couple of months.
|
| |
|
|
|
|
| |
Ensure that we extract a node only from the right tree.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Cast POSIX error codes to unsigned int to avoid undefined behaviour in
case of PTHREAD_BARRIER_SERIAL_THREAD which is -1.
|
|
|
|
| |
Return if the inserted node is the new minimum node or not.
|
|
|
|
|
|
| |
This is an optimization for _Thread_queue_Surrender(). It helps to
encapsulate the priority boosting in the priority inheritance thread
queue operations.
|
|
|
|
|
|
|
| |
Dismantle _Thread_queue_Do_extract_locked() into re-usable parts like
_Thread_queue_MP_set_callout() and _Thread_queue_Make_ready_again().
Use them in _Thread_queue_Surrender() to propare for a new thread queue
surrender operation.
|
|
|
|
|
| |
Add _Thread_queue_Surrender() to unify the mutex surrender procedures
which involve a thread queue operation.
|
|
|
|
| |
This helps to detect double insert and extract errors.
|
| |
|
|
|
|
|
|
|
|
| |
Split up the potential thread priority change in the scheduler
release/cancel job operation. Protect the rate monotonic period state
with a dedicated SMP lock. This avoids a race condition during
_Rate_monotonic_Timeout() while _Rate_monotonic_Cancel() is called on
another processor.
|
|
|
|
|
|
| |
It is possible that the owner of the terminal link of a thread queue
path waits on a thread queue. However, this thread queue has no owner,
e.g. a thread queue of a message queue.
|
|
|
|
|
| |
Commit 21bdca49eea9213cc31a497072d01192eed8675e accidentally used a
function which may be added later.
|
|
|
|
| |
Update #2556.
|
|
|
|
|
| |
Do not use a deadline value of zero to indicate a job cancellation. Use
a dedicated scheduler operation for this.
|
|
|
|
|
|
|
|
|
|
| |
There was a subtile race condition in _Thread_queue_Do_extract_locked().
It must first update the thread wait flags and then restore the default
thread wait state. In the previous implementation this could lead under
rare timing conditions to an ineffective _Thread_Wait_tranquilize()
resulting to a corrupt system state.
Update #2556.
|
|
|
|
|
|
|
|
|
|
|
| |
The newly created macro adds any kind of variable into a linker set. It
allows (for example) the saving an execution state of a function using
the following method:
- put a group of different variables into one linker set
- save the memory area containing the group of variables before the
execution of a function
- restore the memory area after the function has been executed
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The mutex objects use the owner field of the thread queues for the mutex
owner. Use this and add a deadlock detection to
_Thread_queue_Enqueue_critical() for thread queues with an owner.
Update #2412.
Update #2556.
Close #2765.
|
|
|
|
|
|
|
|
|
| |
The _Thread_Lock_acquire() function had a potentially infinite run-time
due to the lack of fairness at atomic operations level.
Update #2412.
Update #2556.
Update #2765.
|
|
|
|
|
|
|
|
|
| |
Move the priority change due to priority interitance to the thread queue
enqueue operation to simplify the locking on SMP configurations.
Update #2412.
Update #2556.
Update #2765.
|
|
|
|
|
|
|
|
|
|
| |
Raise the priority under thread queue lock protection and omit the
superfluous thread queue priority change, since the thread is extracted
anyway. The unblock operation will pick up the new priority.
Update #2412.
Update #2556.
Update #2765.
|
|
|
|
|
|
| |
Update #2412.
Update #2556.
Update #2765.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Fixes a bug with elapsed time calculations misusing absolute time
arguments in nanosleep_helper by passing the requested relative interval.
* Fixes a bug with truncation of absolute timeouts by passing the
full 64-bit value to Thread_queue_Enqueue.
* Share yield logic between nanosleep and clock_nanosleep.
updates #2732
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
updates #2745
|
|
|
|
|
|
|
|
|
| |
Clock disciplines may be WATCHDOG_RELATIVE, WATCHDOG_ABSOLUTE,
or WATCHDOG_NO_TIMEOUT. A discipline of WATCHDOG_RELATIVE with
a timeout of WATCHDOG_NO_TIMEOUT is equivalent to a discipline
of WATCHDOG_NO_TIMEOUT.
updates #2732
|
| |
|
|
|
|
| |
Update #2752.
|
|
|
|
|
| |
Do not use RTEMS_NO_RETURN hints for debug configurations to ease use of
stack traces in case of fatal errors.
|
| |
|
|
|
|
| |
Helps to detect invalid concurrent writes.
|