Skip to content

Commit

Permalink
Call load node service in a separate thread
Browse files Browse the repository at this point in the history
Fixes #107.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
  • Loading branch information
jacobperron committed Jan 16, 2020
1 parent c5e2aa2 commit d50ee96
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions launch_ros/launch_ros/actions/load_composable_nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

"""Module for the LoadComposableNodes action."""

import threading

from typing import List
from typing import Optional
from typing import Text
Expand Down Expand Up @@ -156,7 +158,9 @@ def _load_in_sequence(
"""
next_composable_node_description = composable_node_descriptions[0]
composable_node_descriptions = composable_node_descriptions[1:]
self._load_node(next_composable_node_description, context)
thread = threading.Thread(
target=self._load_node, args=(next_composable_node_description, context))
thread.start()
if len(composable_node_descriptions) > 0:
context.add_completion_future(
context.asyncio_loop.run_in_executor(
Expand Down Expand Up @@ -188,5 +192,4 @@ def execute(
self.__final_target_container_name
)
)
# Assume user has configured `LoadComposableNodes` to happen after container action
self._load_in_sequence(self.__composable_node_descriptions, context)

0 comments on commit d50ee96

Please sign in to comment.