Migrated from code.ros.org, issue #3231
Reported by: mrinal
When the rosrt::Publisher is used from a Xenomai task, it causes the task to switch to secondary mode when signaling a boost/pthread condition variable.
The attached patch is a first attempt at adding Xenomai support to rosrt. It adds three wrapper classes, rosrt::mutex, rosrt::condition_variable, and rosrt::thread, which wrap xenomai functions or boost classes depending on the platform. Tests have also been modified to work on Xenomai, because a loop without sleeps in a real-time thread can starve the system since there is no preemption.
Migrated from code.ros.org, issue #3231
Reported by: mrinal
https://code.ros.org/trac/ros/ticket/3231
When the rosrt::Publisher is used from a Xenomai task, it causes the task to switch to secondary mode when signaling a boost/pthread condition variable.
The attached patch is a first attempt at adding Xenomai support to rosrt. It adds three wrapper classes, rosrt::mutex, rosrt::condition_variable, and rosrt::thread, which wrap xenomai functions or boost classes depending on the platform. Tests have also been modified to work on Xenomai, because a loop without sleeps in a real-time thread can starve the system since there is no preemption.