-
Notifications
You must be signed in to change notification settings - Fork 434
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prevent instantiation of std::vectors in wait_for_work #65
Conversation
9aa5524
to
4404e38
Compare
4404e38
to
fac54c6
Compare
+1, though there is a merge conflict now |
The referenced CI jobs also indicate new warnings. |
+1 |
fac54c6
to
a34e623
Compare
CI after rebase and warnings fix: Linux and OSX green, no new warnings on Windows |
The two warning categories (C4996 and MSB3073) on Windows are currently also the case when building the master: see http://ci.ros2.org/job/ros2_batch_ci_windows/86/ |
Going to squash and merge if that's ok. |
The |
yes, a much "slimmer" solution is possible. I will investigate it. |
The definitions for the different storage classes cannot be typedefs because typedefs cannot be templated (unless a different typedef is to be defined for each necessary template specialization of array, vector, etc). Perhaps a type alias is preferable. However, the API for the two storage containers is not identical because Another detail I'm not clear on is how to override the definition made in Perhaps I should simply implement or find a ring buffer class with an identical (or similar) API to That way, future changes to |
82b26fe
to
fa292c8
Compare
After some discussion offline I've decided to close this PR and readdress the problem of implementing static/real-time safe alternatives to |
Use QoS depth to limit callbacks count
* ros2GH-23 Get all topics from node and sanitize * ros2GH-23 Move methods to node for better interface * ros2GH-23 Use rmw_serialized_message_t consistently * ros2GH-23 Improve santization of topics * ros2GH-65 Introduce and use better logging macros * ros2GH-23 Use publisher to serialized message directly * ros2GH-23 Improve readability of sanitizing topics and types * ros2GH-23 Allow to write all available topics * ros2GH-23 Add test for record all * ros2GH-23 Cleanup: add missing const ref to record interface * Cleanup for doxygen * Improve topic sanitization - correctly expand topic names using rcl - do not check type correctness (supposed to be done internally) * Pass topic_name by reference
For real-time performance completeness, there should be an alternative to instantiating and allocating dynamically sized data structures in
Executor::wait_for_work
, even if they contain small objects like shared pointers. This pull request abstracts out the vectors instantiated inwait_for_work
and replaces them with aSharedPtrContainer
interface. In the default memory strategy, this interface is implemented with astd::vector
, and in theStaticMemoryStrategy
, it is implemented with astd::array
.