| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Update #2555.
|
| |
|
|
|
|
| |
Update #2555.
|
|
|
|
|
|
| |
Use _Thread_queue_Flush_critical() to atomically release the barrier.
Update #2555.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Avoid Giant lock for CORE mutex and semaphore flush and delete
operations.
Update #2555.
|
|
|
|
|
|
|
|
| |
Rename _CORE_RWLock_Obtain_for_reading() into
_CORE_RWLock_Seize_for_reading(). Rename
_CORE_RWLock_Obtain_for_writing() into _CORE_RWLock_Seize_for_writing().
Rename _CORE_RWLock_Release() into _CORE_RWLock_Surrender(). This
avoids confusion with the ISR lock acquire and release.
|
|
|
|
|
|
| |
Rename _CORE_barrier_Wait() into _CORE_barrier_Seize(). Rename
_CORE_barrier_Release() into _CORE_barrier_Surrender(). This avoids
confusion with the ISR lock acquire and release.
|
|
|
|
|
|
| |
Rename _MRSP_Obtain() into _MRSP_Seize(). Rename _MRSP_Release() into
_MRSP_Surrender(). This avoids confusion with the ISR lock acquire and
release.
|
|
|
|
|
| |
Make the id the first parameter since usual callers get the object
identifier as the first parameter themself.
|
|
|
|
|
| |
Make the id the first parameter since usual callers get the object
identifier as the first parameter themself.
|
|
|
|
| |
Remove unused location parameter.
|
|
|
|
|
|
| |
Remove unused supports_global parameter. Convert
_Objects_Initialize_information() to a macro to avoid use of
RTEMS_MULTIPROCESSING define for each caller.
|
|
|
|
|
|
|
|
| |
Replace _Thread_queue_Flush() with _Thread_queue_Flush_critical() and
add a filter function for customization of the thread queue flush
operation.
Update #2555.
|
|
|
|
| |
Add and use _CORE_mutex_Release().
|
|
|
|
| |
Parameter was unused.
|
|
|
|
|
| |
This prevents use of the object after the flush on uni-processor
configurations.
|
|
|
|
|
|
|
| |
Use proper CORE_semaphore_Status for _CORE_semaphore_Flush() and
_CORE_semaphore_Destroy() operations.
Close #2696.
|
| |
|
|
|
|
|
|
|
| |
Drop status parameter since each caller used
CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED.
Remove superfluous _CORE_message_queue_Flush().
|
|
|
|
|
| |
Remove superfluous _CORE_message_queue_Flush() since we completely
re-initialize the structure in _CORE_message_queue_Initialize().
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a lock and use a chain iterator for safe iteration during concurrent
user extension addition and removal.
Ensure that dynamically added thread delete and fatal extensions are
called in reverse order.
Update #2555.
Update #2692.
|
|
|
|
| |
Simplify _User_extensions_Handler_initialization().
|
|
|
|
|
| |
Add a chain iterator for safe iteration of chains with concurrent node
extraction.
|
| |
|
|
|
|
|
|
|
| |
This functions supports only local objects. Thus, drop the location
parameter which was unused by all callers.
Remove superfluous includes from Classic Region implementation.
|
| |
|
| |
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
|
| |
Use a red-black tree to lookup active global objects by identifier or
name.
Update #2555.
|
|
|
|
| |
Update #2555.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The thread queue implementation was heavily reworked to support SMP.
This broke the multiprocessing support of the thread queues. This is
fixed by this patch.
A thread proxy is unblocked due to three reasons
1) timeout,
2) request satisfaction, and
3) extraction.
In case 1) no MPCI message must be sent. This is ensured via the
_Thread_queue_MP_callout_do_nothing() callout set during
_Thread_MP_Allocate_proxy().
In case 2) and 3) an MPCI message must be sent. In case we interrupt
the blocking operation during _Thread_queue_Enqueue_critical(), then
this message must be sent by the blocking thread. For this the new
fields Thread_Proxy_control::thread_queue_callout and
Thread_Proxy_control::thread_queue_id are used.
Delete the individual API MP callout types and use
Thread_queue_MP_callout throughout. This type is only defined in
multiprocessing configurations. Prefix the multiprocessing parameters
with mp_ to ease code review. Multiprocessing specific parameters are
optional due to use of a similar macro pattern. There is no overhead
for non-multiprocessing configurations.
|
|
|
|
|
| |
Also set the thread wait return code for thread proxies since this
causes no harm.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change _Thread_queue_Flush() into a macro that invokes
_Thread_queue_Do_flush() with the parameter set defined by
RTEMS_MULTIPROCESSING. For multiprocessing configurations add the
object identifier to avoid direct use of the thread wait information.
Use mp_ prefix for multiprocessing related parameters.
Rename Thread_queue_Flush_callout to Thread_queue_MP_callout since this
type will be re-used later for other operations as well.
|
|
|
|
|
|
| |
We must update the wait flags under protection of the current thread
lock, otherwise a _Thread_Timeout() running on another processor may
interfere.
|
|
|
|
| |
MP support was not implemented.
|
|
|
|
|
|
|
|
|
|
|
| |
This field was only by the monitor in non-multiprocessing
configurations. Add new field Thread_Wait_information::remote_id in
multiprocessing configurations and use it for the remote procedure call
thread queue.
Add _Thread_Wait_get_id() to obtain the object identifier for debug and
system information tools. Ensure the object layout via static asserts.
Add test cases to sptests/spthreadq01.
|
| |
|