| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
It makes no sense to use this indirection since the type for timeout
values is Watchdog_Interval.
|
|
|
|
|
|
|
| |
The Objects_Control::Lock was a software layer violation. It worked
only for the threads since they are somewhat special.
Update #2273.
|
|
|
|
|
|
|
|
|
|
| |
Remove _Thread_Acquire() and _Thread_Acquire_for_executing(). Add
utility functions for the default thread lock. Use the default thread
lock for the RTEMS events. There is no need to disable thread
dispatching and a Giant acquire in _Event_Timeout() since this was
already done by the caller.
Update #2273.
|
|
|
|
|
| |
Return the current processor to be in line with
_Thread_Disable_dispatch().
|
|
|
|
|
|
|
|
| |
Do not disable thread dispatching and do not acquire the Giant lock.
This makes it possible to use this object get variant for fine grained
locking.
Update #2273.
|
|
|
|
|
|
|
| |
Use ISR_lock_Context instead of ISR_Level to allow use of ISR locks for
low-level locking.
Update #2273.
|
| |
|
| |
|
|
|
|
| |
closes 2326.
|
|
|
|
|
| |
While cpu_self->thread_dispatch_disable_level shouldn't ever be zero, it
would be better to check it before doing the decrement.
|
|
|
|
|
| |
Update the current time before the watchdog adjust so that timer
routines observe the new time.
|
| |
|
| |
|
|
|
|
|
| |
Remove superfluous ISR disable/enable. In addition using a stand-alone
_ISR_Disable/Enable is wrong on SMP configurations.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The Allocator Mutex should not be locked outside a tested
service call. In an SMP test or heavily multithreaded test,
this is possible since another thread could have the lock
for an extended period of time but this is not the norm
for the tests.
updates 2319.
|
|
|
|
| |
Update #2307.
|
|
|
|
|
|
|
| |
This type is intended to encapsulate all state to manage a watchdog
chain.
Update #2307.
|
|
|
|
|
|
|
|
|
| |
Split _Watchdog_Adjust() into _Watchdog_Adjust_backward() and
_Watchdog_Adjust_forward(). Remove Watchdog_Adjust_directions,
_Watchdog_Adjust_seconds() and _Watchdog_Adjust_ticks(). This avoids to
check the same condition again.
Update #2307.
|
|
|
|
|
|
|
|
|
|
|
| |
The stack pointer must be aligned on 8 byte boundary on ARM, so the size of
the exception frame must be a multiple of 8 bytes. Otherwise we might/will
get an alignment fault, when executing code in the data abort handler for
example.
Close #2318.
Signed-off-by: Daniel Krueger <daniel.krueger@systec-electronic.com>
|
|
|
|
|
|
|
| |
On uni-processor configurations the change of the thread blocking state
in _Thread_queue_Requeue_priority() did no harm and was simply useless.
However on SMP configurations this resulted in invalid state changes
leading to a wrong resource ownership.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is currently a global lock for all scheduler instances. It should
get replaced with one lock per scheduler instance in the future.
Update #2273.
|
|
|
|
|
|
|
|
| |
This makes it possible to use the standard thread queues in combination
with objects using fine grained locking. There is no change for
uni-processor configurations.
Update #2273.
|
|
|
|
| |
Update #2273.
|
|
|
|
|
|
|
|
|
|
| |
Since the thread current priority change and thread queue requeue is
performed in one critical section it is possible to simplify the thread
queue requeue procedure. Add a thread queue agnostic thread priority
change handler so that we are able to use alternative thread queue
implementations.
Update #2273.
|
| |
|
| |
|
|
|
|
| |
Now all the main thread queue operations are in one module.
|
|
|
|
|
|
|
|
| |
Move _Thread_queue_Dequeue(). We need all or no thread queue functions
so it makes no sense to have them in separate modules. One module
enables compiler optimizations without link-time optimization. Make
_Thread_blocking_operation_Finalize() static since it is use now only in
one module.
|
|
|
|
|
|
|
| |
Move _Thread_blocking_operation_Cancel() and make static since it is
only used by _Thread_queue_Enqueue_with_handler().
Move _Thread_blocking_operation_Finalize().
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Atomically update the current priority of a thread and the wait queue.
Serialize the scheduler update in a separate critical section with a
generation number.
New test sptests/spintrcritical23.
Close #2310.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Closes #2304
|