| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Under certain conditions a new watchdog was inserted with a wrong and
very large delta interval due to an incomplete iterator update.
Bug was introduced by 1ccbd052910ed16131c74b0d5595c8a94066942d.
Close #2501.
|
|
|
|
| |
closes #2431.
|
|
|
|
|
| |
The $(PAX) variable is used unconditionally so it shouldn't be
left empty if not found at configure time. Fixes #2437.
|
|
|
|
|
|
|
| |
Remove unused descriptor of merged free chunks from the free chain and
add them to the spare descriptors.
Update #2417.
|
|
|
|
| |
Update #2417.
|
|
|
|
|
| |
This function is hard to support in alternative implementations. It has
no internal use case.
|
| |
|
| |
|
|
|
|
| |
With this a _Freechain_Put( _Freechain_Get() ) works always.
|
|
|
|
|
| |
Replace the extend function with an allocator since this fits better
to the current use case.
|
|
|
|
| |
The problem is that empty structures have a different size in C and C++.
|
|
|
|
|
| |
Drop the <rtems/score/percpu.h> include since this file exposes a lot of
implementation details.
|
|
|
|
|
|
|
|
| |
Add rtems_interrupt_local_disable|enable() as suggested by Pavel Pisa to
emphasize that interrupts are only disabled on the current processor.
Do not define the rtems_interrupt_disable|enable|flash() macros and
functions on SMP configurations since they don't ensure system wide
mutual exclusion.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This was obsolete and broken based upon recent time keeping changes.
Thie build option was previously enabled by adding
USE_TICKS_FOR_STATISTICS=1 to the configure command line.
This propagated into the code as preprocessor conditionals
using the __RTEMS_USE_TICKS_FOR_STATISTICS__ conditional.
|
|
|
|
|
|
| |
Add an assert to ensure that the watchdog is the proper state for a
_Watchdog_Initialize(). This helps to detect invalid initializations
which may lead to a corrupt watchdog chain.
|
|
|
|
| |
Update #2365.
|
| |
|
|
|
|
|
| |
Do a volatile clobber in the context switch extension to cover the path
through _Thread_Do_dispatch() invoked after interrupt processing.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
It is wrong to restore the floating point context here. The
_Context_Switch() ends up in _Thread_Handler() which will call
_Thread_Restore_fp(). In _Thread_Do_dispatch() the FP restore is after
the context switch.
|
|
|
|
|
|
|
| |
There is no NULL pointer access. Please note that
_Thread_Get_executing() != executing variable in Low_task().
This reverts commit 5611839a7e2e371dd1f327c336c785095f634e55.
|
| |
|
| |
|
|
|
|
| |
Replace _API_Mutex_Is_locked() with _API_Mutex_Is_owner().
|
|
|
|
|
|
|
| |
In case the zlib compression was used, then the librtemscpu.a depended
on libz.a. To avoid a GCC patch or complicated link flags move the
JFFS2 support into a separate library to use a simple "-ljffs2 -lz" to
link the executable.
|
| |
|
|
|
|
|
|
|
|
| |
Replace timestamp implementation with FreeBSD bintime and timecounters.
New test sptests/sptimecounter02.
Update #2271.
|
|
|
|
|
|
| |
New test sptests/timecounter01.
Update #2271.
|
|
|
|
| |
Restructure to avoid large maximum thread dispatch disabled times.
|
|
|
|
| |
Increase the ualarm timer interval to avoid endless signal handling.
|
| |
|
|
|
|
| |
Update #2307.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the writes to Thread_Control::current_priority and
Thread_Control::real_priority into _Thread_Change_priority() under the
protection of the thread lock. Add a filter function to
_Thread_Change_priority() to enable specialized variants.
Avoid race conditions during a thread priority restore with the new
Thread_Control::priority_restore_hint for an important average case
optimizations used by priority inheritance mutexes.
Update #2273.
|
|
|
|
|
|
|
|
|
| |
Use thread wait flags for synchronization. The enqueue operation is now
part of the initial critical section. This is the key change and
enables fine grained locking on SMP for objects using a thread queue
like semaphores and message queues.
Update #2273.
|
|
|
|
|
|
|
|
| |
Replace the Thread_Priority_control with more general
Thread_queue_Operations which will be used for generic priority change,
timeout, signal and wait queue operations in the future.
Update #2273.
|
|
|
|
|
|
|
| |
Add a thread wait timeout code. Replace _Event_Timeout() with a general
purpose _Thread_Timeout() watchdog handler.
Update #2273.
|
|
|
|
|
|
|
|
|
|
| |
Merge THREAD_WAIT_STATE_SATISFIED, THREAD_WAIT_STATE_TIMEOUT,
THREAD_WAIT_STATE_INTERRUPT_SATISFIED, and
THREAD_WAIT_STATE_INTERRUPT_TIMEOUT into one state
THREAD_WAIT_STATE_READY_AGAIN. This helps to write generic routines to
block a thread.
Update #2273.
|
|
|
|
|
|
|
|
| |
Use mostly the standard watchdog operations. Use a system event for
synchronization. This implementation is simpler and offers better SMP
performance.
Close #2131.
|
|
|
|
|
|
|
|
|
|
| |
Rewrite the _Watchdog_Insert(), _Watchdog_Remove() and
_Watchdog_Tickle() functions to use iterator items to synchronize
concurrent operations. This makes it possible to get rid of the global
variables _Watchdog_Sync_level and _Watchdog_Sync_count which are a
blocking point for scalable SMP solutions.
Update #2307.
|
|
|
|
|
|
|
|
| |
Add watchdog header parameter to _Watchdog_Remove() to be in line with
the other operations. Add _Watchdog_Remove_ticks() and
_Watchdog_Remove_seconds() for convenience.
Update #2307.
|
|
|
|
|
| |
Remove thread queue parameter from _Thread_queue_Extract() since the
current thread queue is stored in the thread control block.
|
|
|
|
| |
Restructure to avoid large maximum thread dispatch disabled times.
|
|
|
|
|
|
| |
Account for priority changes of threads executing in a foreign
partition. Exchange idle threads in case a victim node uses an idle
thread and the new scheduled node needs an idle thread.
|
| |
|
|
|
|
| |
Avoid collision with <sys/param.h> defined PAGE_SIZE.
|