Skip to content
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

use events exec instaed of single threded one #1

Open
wants to merge 22 commits into
base: iron
Choose a base branch
from

Conversation

jplapp
Copy link

@jplapp jplapp commented Dec 31, 2023

Events Executor is significantly faster than the default single threaded one -> use it for the composable nodes container

@jplapp jplapp requested a review from HovorunB December 31, 2023 09:20
mauropasse and others added 19 commits January 25, 2024 09:10
This is to ensure callbacks are destroyed last
on entities destruction, avoiding the gap in time
in which rmw entities hold a reference to a
destroyed function.

Signed-off-by: Mauro Passerino <mpasserino@irobot.com>
Co-authored-by: Mauro Passerino <mpasserino@irobot.com>
…2187)

* add mutex to protect events_executor current entity collection and unit-test

Signed-off-by: Alberto Soragna <alberto.soragna@gmail.com>

* be more precise with mutex locks; make stress test less stressfull

Signed-off-by: Alberto Soragna <alberto.soragna@gmail.com>

* fix uncrustify error

Signed-off-by: Alberto Soragna <alberto.soragna@gmail.com>

---------

Signed-off-by: Alberto Soragna <alberto.soragna@gmail.com>
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
…2#2267)

* fix(ClientGoalHandle): Made mutex recursive to prevent deadlocks

This prevents deadlocks in cases, were e.g. get_status() would
be called on the handle in a callback of the handle.

* test(rclcpp_action): Added test for deadlocks during access of a goal handle

This test checks, if the code deadlocks, if methods on the goal handle are
called from the callbacks.

Signed-off-by: Janosch Machowinski <J.Machowinski@cellumation.com>
Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
We need this because it is possible for one thread to
be handling the on_parameter_event callback while another
one is detaching the node.  This lock will protect that
from happening.

Signed-off-by: Chris Lalancette <clalancette@gmail.com>
… when using intra-process communication (ros2#2303)

* Add intra process transient local durability support to publisher and subscription

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Remove durability_is_transient_local_ from publisher_base
Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Design changes that move most transient local publish functionalities out of
intra process manager into intra process manager

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Move transient local publish to a separate function

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Remove publisher buffer weak ptr from intra process manager when it associated publisher is removed.

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Remove incorrectly placed RCLCPP_PUBLIC

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Add missing RCLCPP_PUBLIC

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Expand RingBufferImplementation beyond shared_ptr and unique_ptr

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

* Comment and format fix

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>

---------

Signed-off-by: Jeffery Hsu <jefferyyjhsu@gmail.com>
AMRNAV-6258 Use intra process communication
* added rclcpp::SerializedMessage support for AnySubscriptionCallback

Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

* using AnySubscription callback for generic subscriptiion

Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

* updated tests

Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

* Remove comment

Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

---------

Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>
Co-authored-by: Joshua Hampp <j.hampp@denso-adas.de>
Co-authored-by: Jacob Perron <jacob@openrobotics.org>
commit a8e279c
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Dec 11 15:52:34 2023 +0100

    added test for SubscriptionIntraProcess with unique subscriber

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>

commit 4f6e466
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Dec 11 15:51:54 2023 +0100

    extended test for shared callback to cover more use cases

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>

commit 2115b26
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Dec 11 14:11:21 2023 +0100

    added test_intra_process_subscriber to test serialized communication with IPM

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>

commit 9d37234
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Nov 6 07:17:36 2023 +0100

    updated SubscriptionTopicStatistics to current master

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>

commit 280e7be
Author: Joshua Hampp <j.hampp@eu.denso.com>
Date:   Mon May 22 11:18:02 2023 +0200

    updated to rolling

    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 16fc15f
Author: Joshua Hampp <j.hampp@eu.denso.com>
Date:   Mon May 8 13:53:30 2023 +0200

    fixes due to rebase

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 3978f2a
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Wed Aug 3 09:21:21 2022 +0200

    added unit test for generic publisher/subscriber with intraprocess communication

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 245c868
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Aug 1 13:03:43 2022 +0200

    fixed duplicated messages for ipm and serialized messages

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit e98c158
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu Jul 7 08:42:48 2022 +0200

    added additional methods for create_generic_subscription

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit c2501cf
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu Jul 7 08:14:41 2022 +0200

    updated test to ipm issue

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit c9b148b
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu Jul 7 08:14:18 2022 +0200

    throwing error when subscription callback uses rclcpp::SerializedMessage and subscriber has a ros message type for intra process communication

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 667d8d2
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu Jul 7 08:13:15 2022 +0200

    fixed intra process publish of serialized message

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 048c458
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu Jun 23 08:41:59 2022 +0200

    using instead of typedef

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 098b6dd
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu Jun 23 08:41:48 2022 +0200

    splitted deserialization and message forwarding

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 158ab2c
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Wed Jun 22 11:44:44 2022 +0200

    removed specialization of GenericSubscription

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 7880677
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Wed Jun 22 10:30:15 2022 +0200

    fix double return

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit b4236b3
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Jun 20 11:04:43 2022 +0200

    enabled qos override

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit f45d12b
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Jun 20 11:04:24 2022 +0200

    added failure case at top

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit ea9245e
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Jun 20 11:03:37 2022 +0200

    added comment block

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 795a281
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Jun 20 11:02:25 2022 +0200

    fixed comment

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit de29d0e
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Mon Jun 20 07:46:27 2022 +0200

    renamed to Indices

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 9e16b43
Author: DensoADAS <46967124+DensoADAS@users.noreply.github.com>
Date:   Mon Jun 20 08:10:57 2022 +0200

    Update rclcpp/include/rclcpp/experimental/subscription_intra_process_base.hpp

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Co-authored-by: Jacob Perron <jacob@openrobotics.org>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 9b5fd63
Author: DensoADAS <46967124+DensoADAS@users.noreply.github.com>
Date:   Mon Jun 20 08:10:50 2022 +0200

    Update rclcpp/include/rclcpp/experimental/subscription_intra_process_base.hpp

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Co-authored-by: Jacob Perron <jacob@openrobotics.org>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 4cbc678
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Tue May 17 09:02:15 2022 +0200

    using const modifier

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit c8fd558
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Tue May 17 09:02:05 2022 +0200

    updated comments

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 4a34d97
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Tue May 17 09:01:45 2022 +0200

    renamed to SplitSubscriptionsIndices and changed datatype to unsigned

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit bb09e50
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Fri May 13 10:27:52 2022 +0200

    added ipm for generic_subscription

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 2a28f60
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Fri May 13 10:27:34 2022 +0200

    updated tests

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 18c9259
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu May 12 14:28:25 2022 +0200

    updated tests

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 1f1f28f
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu May 12 14:28:03 2022 +0200

    updated publisher/subcription factories

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 33cb9dc
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu May 12 14:27:41 2022 +0200

    * publish std::unique_ptr<rclcpp::SerializedMessage> support with ipm
    * publisher constructor with message type support

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>

commit 636e076
Author: Joshua Hampp <j.hampp@denso-adas.de>
Date:   Thu May 12 14:26:20 2022 +0200

    added rclcpp::SerializedMessage support to IPM

    Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
    Signed-off-by: Joshua Hampp <j.hampp@eu.denso.com>
AMRNAV-6339 Enable IPC for rosbag recorder and foxglove bridge: Support IPC for serialized subscribers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants