[rtems commit] score: Comment _Thread_queue_Surrender_sticky()

Sebastian Huber sebh at rtems.org
Tue Jun 15 16:38:08 UTC 2021


Module:    rtems
Branch:    master
Commit:    98cef4041b3300d0361cd8c995dcbb20e0d702c7
Changeset: http://git.rtems.org/rtems/commit/?id=98cef4041b3300d0361cd8c995dcbb20e0d702c7

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jun 15 12:28:25 2021 +0200

score: Comment _Thread_queue_Surrender_sticky()

The change also helps to avoid reports from static analysers since most
callers of _Thread_queue_Make_ready_again() check the unblock status.

---

 cpukit/score/src/threadqenqueue.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c
index 5e228b7..d187e32 100644
--- a/cpukit/score/src/threadqenqueue.c
+++ b/cpukit/score/src/threadqenqueue.c
@@ -733,7 +733,13 @@ void _Thread_queue_Surrender_sticky(
     queue_context
   );
   queue->owner = new_owner;
-  _Thread_queue_Make_ready_again( new_owner );
+
+  /*
+   * There is no need to check the unblock status, since in the corresponding
+   * _Thread_queue_Enqueue_sticky() the thread is not blocked by the scheduler.
+   * Instead, the thread busy waits for a change of its thread wait flags.
+   */
+  (void) _Thread_queue_Make_ready_again( new_owner );
 
   cpu_self = _Thread_queue_Dispatch_disable( queue_context );
   _Thread_queue_Queue_release(



More information about the vc mailing list