From 50aef135a405a0dc26c39d7cfe7066f85b3dfbb5 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 11 Nov 2021 08:35:22 +0100 Subject: score: Add _Thread_MP_Extract_proxy() Remove _Thread_queue_Extract_with_proxy() and move the proxy extraction to _Thread_MP_Extract_proxy(). Move similar code blocks of the previous caller of _Thread_queue_Extract_with_proxy() to helper functions. Update #4546. --- cpukit/include/rtems/score/threadmp.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'cpukit/include/rtems/score/threadmp.h') diff --git a/cpukit/include/rtems/score/threadmp.h b/cpukit/include/rtems/score/threadmp.h index 6cc68e6320..e10661a573 100644 --- a/cpukit/include/rtems/score/threadmp.h +++ b/cpukit/include/rtems/score/threadmp.h @@ -97,6 +97,19 @@ Thread_Control *_Thread_MP_Find_proxy ( #define _Thread_MP_Is_receive(_the_thread) \ ((_the_thread) == _MPCI_Receive_server_tcb) +/** + * @brief Extracts the proxy of the thread if necessary. + * + * This routine ensures that if there is a proxy for this thread on another + * node, it is also dealt with. A proxy is a data that is on the thread queue + * on the remote node and acts as a proxy for the local thread. If the local + * thread was waiting on a remote operation, then the remote side of the + * operation must be cleaned up. + * + * @param[in, out] the_thread is the thread to determine the proxy. + */ +void _Thread_MP_Extract_proxy( Thread_Control *the_thread ); + /** * @brief Trees a proxy control block to the inactive chain of free proxy * control blocks. -- cgit v1.2.3