[rtems commit] monitor: Add support for BSD wakeup messages

Sebastian Huber sebh at rtems.org
Tue Jan 31 09:11:20 UTC 2017


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jan 31 09:01:37 2017 +0100

monitor: Add support for BSD wakeup messages

---

 cpukit/libmisc/monitor/mon-task.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/cpukit/libmisc/monitor/mon-task.c b/cpukit/libmisc/monitor/mon-task.c
index d2bc16b..1b3c902 100644
--- a/cpukit/libmisc/monitor/mon-task.c
+++ b/cpukit/libmisc/monitor/mon-task.c
@@ -23,6 +23,9 @@ rtems_monitor_task_wait_info(
     Thread_queue_Context      queue_context;
     const Thread_queue_Queue *queue;
 
+    canonical_task->wait_id = 0;
+    canonical_task->wait_name[0] = '\0';
+
     _Thread_queue_Context_initialize( &queue_context );
     _Thread_Wait_acquire( rtems_thread, &queue_context );
 
@@ -35,9 +38,20 @@ rtems_monitor_task_wait_info(
         sizeof(canonical_task->wait_name),
         &canonical_task->wait_id
       );
-    } else {
-      canonical_task->wait_id = 0;
-      canonical_task->wait_name[0] = '\0';
+    } else if (
+      (rtems_thread->current_state & STATES_WAITING_FOR_BSD_WAKEUP) != 0
+    ) {
+      const char *wmesg;
+
+      wmesg = rtems_thread->Wait.return_argument_second.immutable_object;
+
+      if (wmesg != NULL) {
+        strlcpy(
+          canonical_task->wait_name,
+          wmesg,
+          sizeof(canonical_task->wait_name)
+        );
+      }
     }
 
     _Thread_Wait_release( rtems_thread, &queue_context );



More information about the vc mailing list