Function rcl_action_wait_set_add_action_server

Function Documentation

rcl_ret_t rcl_action_wait_set_add_action_server(rcl_wait_set_t *wait_set, const rcl_action_server_t *action_server, size_t *service_index)

Add a rcl_action_server_t to a wait set.

This function will add the underlying services to the wait set.

This function behaves similar to adding services to the wait set, but will add three services.

  • If this function fails for any reason, service_index is not set. It is also possible the provided wait set is left in an inconsistent state (e.g. some of the clients and subscribers were added to the wait set, but not all).

Attribute

Adherence

Allocates Memory

Yes

Thread-Safe

No

Uses Atomics

No

Lock-Free

Yes

Parameters:
  • wait_set[inout] struct where action server services are to be stored

  • action_server[in] the action server to be added to the wait set

  • service_index[out] the starting index in the wait set’s service container where the action servers underlying services were added. Optionally, set to NULL if ignored.

Returns:

RCL_RET_OK if added successfully, or

Returns:

RCL_RET_WAIT_SET_INVALID if the wait set is zero initialized, or

Returns:

RCL_RET_WAIT_SET_FULL if the subscription set is full, or

Returns:

RCL_RET_ACTION_SERVER_INVALID if the action server is invalid, or

Returns:

RCL_RET_ERROR if an unspecified error occurs.