add warnings when return codes of API are ignored
This commit is contained in:
parent
8da408a3d8
commit
41d123b571
12 changed files with 122 additions and 7 deletions
|
@ -20,6 +20,7 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/types.h"
|
#include "rcl/types.h"
|
||||||
#include "rcl/visibility_control.h"
|
#include "rcl/visibility_control.h"
|
||||||
|
|
||||||
|
@ -61,6 +62,7 @@ typedef struct rcl_allocator_t
|
||||||
* This function is lock-free.
|
* This function is lock-free.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_allocator_t
|
rcl_allocator_t
|
||||||
rcl_get_default_allocator();
|
rcl_get_default_allocator();
|
||||||
|
|
||||||
|
@ -69,6 +71,7 @@ rcl_get_default_allocator();
|
||||||
* function pointer fields.
|
* function pointer fields.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
void *
|
void *
|
||||||
rcl_reallocf(void * pointer, size_t size, rcl_allocator_t * allocator);
|
rcl_reallocf(void * pointer, size_t size, rcl_allocator_t * allocator);
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/node.h"
|
#include "rcl/node.h"
|
||||||
#include "rcl/visibility_control.h"
|
#include "rcl/visibility_control.h"
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@ typedef struct rcl_guard_condition_options_t
|
||||||
|
|
||||||
/// Return a rcl_guard_condition_t struct with members set to NULL.
|
/// Return a rcl_guard_condition_t struct with members set to NULL.
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_guard_condition_t
|
rcl_guard_condition_t
|
||||||
rcl_get_zero_initialized_guard_condition();
|
rcl_get_zero_initialized_guard_condition();
|
||||||
|
|
||||||
|
@ -84,6 +86,7 @@ rcl_get_zero_initialized_guard_condition();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_guard_condition_init(
|
rcl_guard_condition_init(
|
||||||
rcl_guard_condition_t * guard_condition,
|
rcl_guard_condition_t * guard_condition,
|
||||||
|
@ -106,6 +109,7 @@ rcl_guard_condition_init(
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_guard_condition_fini(rcl_guard_condition_t * guard_condition, rcl_node_t * node);
|
rcl_guard_condition_fini(rcl_guard_condition_t * guard_condition, rcl_node_t * node);
|
||||||
|
|
||||||
|
@ -115,6 +119,7 @@ rcl_guard_condition_fini(rcl_guard_condition_t * guard_condition, rcl_node_t * n
|
||||||
* This function is lock-free.
|
* This function is lock-free.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_guard_condition_options_t
|
rcl_guard_condition_options_t
|
||||||
rcl_guard_condition_get_default_options();
|
rcl_guard_condition_get_default_options();
|
||||||
|
|
||||||
|
@ -136,6 +141,7 @@ rcl_guard_condition_get_default_options();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_guard_condition_trigger(const rcl_guard_condition_t * guard_condition);
|
rcl_guard_condition_trigger(const rcl_guard_condition_t * guard_condition);
|
||||||
|
|
||||||
|
@ -157,6 +163,7 @@ rcl_guard_condition_trigger(const rcl_guard_condition_t * guard_condition);
|
||||||
* \return rmw guard_condition handle if successful, otherwise NULL
|
* \return rmw guard_condition handle if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rmw_guard_condition_t *
|
rmw_guard_condition_t *
|
||||||
rcl_guard_condition_get_rmw_handle(const rcl_guard_condition_t * guard_condition);
|
rcl_guard_condition_get_rmw_handle(const rcl_guard_condition_t * guard_condition);
|
||||||
|
|
||||||
|
|
33
rcl/include/rcl/macros.h
Normal file
33
rcl/include/rcl/macros.h
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2015 Open Source Robotics Foundation, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
#ifndef RCL__MACROS_H_
|
||||||
|
#define RCL__MACROS_H_
|
||||||
|
|
||||||
|
#if __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
# define RCL_WARN_UNUSED __attribute__((warn_unused_result))
|
||||||
|
#else
|
||||||
|
# define RCL_WARN_UNUSED _Check_return_
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // RCL__MACROS_H_
|
|
@ -23,6 +23,7 @@ extern "C"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "rcl/allocator.h"
|
#include "rcl/allocator.h"
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/types.h"
|
#include "rcl/types.h"
|
||||||
#include "rcl/visibility_control.h"
|
#include "rcl/visibility_control.h"
|
||||||
|
|
||||||
|
@ -59,6 +60,7 @@ typedef struct rcl_node_options_t
|
||||||
|
|
||||||
/// Return a rcl_node_t struct with members initialized to NULL.
|
/// Return a rcl_node_t struct with members initialized to NULL.
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_node_t
|
rcl_node_t
|
||||||
rcl_get_zero_initialized_node();
|
rcl_get_zero_initialized_node();
|
||||||
|
|
||||||
|
@ -106,6 +108,7 @@ rcl_get_zero_initialized_node();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_node_init(rcl_node_t * node, const char * name, const rcl_node_options_t * options);
|
rcl_node_init(rcl_node_t * node, const char * name, const rcl_node_options_t * options);
|
||||||
|
|
||||||
|
@ -124,6 +127,7 @@ rcl_node_init(rcl_node_t * node, const char * name, const rcl_node_options_t * o
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_node_fini(rcl_node_t * node);
|
rcl_node_fini(rcl_node_t * node);
|
||||||
|
|
||||||
|
@ -146,6 +150,7 @@ rcl_node_get_default_options();
|
||||||
* \return name string if successful, otherwise NULL
|
* \return name string if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
const char *
|
const char *
|
||||||
rcl_node_get_name(const rcl_node_t * node);
|
rcl_node_get_name(const rcl_node_t * node);
|
||||||
|
|
||||||
|
@ -163,6 +168,7 @@ rcl_node_get_name(const rcl_node_t * node);
|
||||||
* \return options struct if successful, otherwise NULL
|
* \return options struct if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
const rcl_node_options_t *
|
const rcl_node_options_t *
|
||||||
rcl_node_get_options(const rcl_node_t * node);
|
rcl_node_get_options(const rcl_node_t * node);
|
||||||
|
|
||||||
|
@ -185,6 +191,7 @@ rcl_node_get_options(const rcl_node_t * node);
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_node_get_domain_id(const rcl_node_t * node, size_t * domain_id);
|
rcl_node_get_domain_id(const rcl_node_t * node, size_t * domain_id);
|
||||||
|
|
||||||
|
@ -207,6 +214,7 @@ rcl_node_get_domain_id(const rcl_node_t * node, size_t * domain_id);
|
||||||
* \return rmw node handle if successful, otherwise NULL
|
* \return rmw node handle if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rmw_node_t *
|
rmw_node_t *
|
||||||
rcl_node_get_rmw_handle(const rcl_node_t * node);
|
rcl_node_get_rmw_handle(const rcl_node_t * node);
|
||||||
|
|
||||||
|
@ -226,6 +234,7 @@ rcl_node_get_rmw_handle(const rcl_node_t * node);
|
||||||
* \return rcl instance id captured at node creation or 0 if there was an error
|
* \return rcl instance id captured at node creation or 0 if there was an error
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
uint64_t
|
uint64_t
|
||||||
rcl_node_get_rcl_instance_id(const rcl_node_t * node);
|
rcl_node_get_rcl_instance_id(const rcl_node_t * node);
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ extern "C"
|
||||||
|
|
||||||
#include "rosidl_generator_c/message_type_support.h"
|
#include "rosidl_generator_c/message_type_support.h"
|
||||||
|
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/node.h"
|
#include "rcl/node.h"
|
||||||
#include "rcl/visibility_control.h"
|
#include "rcl/visibility_control.h"
|
||||||
|
|
||||||
|
@ -51,6 +52,7 @@ typedef struct rcl_publisher_options_t
|
||||||
* being allocated on the heap.
|
* being allocated on the heap.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_publisher_t
|
rcl_publisher_t
|
||||||
rcl_get_zero_initialized_publisher();
|
rcl_get_zero_initialized_publisher();
|
||||||
|
|
||||||
|
@ -126,6 +128,7 @@ rcl_get_zero_initialized_publisher();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_publisher_init(
|
rcl_publisher_init(
|
||||||
rcl_publisher_t * publisher,
|
rcl_publisher_t * publisher,
|
||||||
|
@ -150,11 +153,13 @@ rcl_publisher_init(
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_publisher_fini(rcl_publisher_t * publisher, rcl_node_t * node);
|
rcl_publisher_fini(rcl_publisher_t * publisher, rcl_node_t * node);
|
||||||
|
|
||||||
/// Return the default publisher options in a rcl_publisher_options_t.
|
/// Return the default publisher options in a rcl_publisher_options_t.
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_publisher_options_t
|
rcl_publisher_options_t
|
||||||
rcl_publisher_get_default_options();
|
rcl_publisher_get_default_options();
|
||||||
|
|
||||||
|
@ -203,6 +208,7 @@ rcl_publisher_get_default_options();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_publish(const rcl_publisher_t * publisher, const void * ros_message);
|
rcl_publish(const rcl_publisher_t * publisher, const void * ros_message);
|
||||||
|
|
||||||
|
@ -222,6 +228,7 @@ rcl_publish(const rcl_publisher_t * publisher, const void * ros_message);
|
||||||
* \return name string if successful, otherwise NULL
|
* \return name string if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
const char *
|
const char *
|
||||||
rcl_publisher_get_topic_name(const rcl_publisher_t * publisher);
|
rcl_publisher_get_topic_name(const rcl_publisher_t * publisher);
|
||||||
|
|
||||||
|
@ -241,6 +248,7 @@ rcl_publisher_get_topic_name(const rcl_publisher_t * publisher);
|
||||||
* \return options struct if successful, otherwise NULL
|
* \return options struct if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
const rcl_publisher_options_t *
|
const rcl_publisher_options_t *
|
||||||
rcl_publisher_get_options(const rcl_publisher_t * publisher);
|
rcl_publisher_get_options(const rcl_publisher_t * publisher);
|
||||||
|
|
||||||
|
@ -262,6 +270,7 @@ rcl_publisher_get_options(const rcl_publisher_t * publisher);
|
||||||
* \return rmw publisher handle if successful, otherwise NULL
|
* \return rmw publisher handle if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rmw_publisher_t *
|
rmw_publisher_t *
|
||||||
rcl_publisher_get_rmw_handle(const rcl_publisher_t * publisher);
|
rcl_publisher_get_rmw_handle(const rcl_publisher_t * publisher);
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/node.h"
|
#include "rcl/node.h"
|
||||||
#include "rcl/publisher.h"
|
#include "rcl/publisher.h"
|
||||||
#include "rcl/subscription.h"
|
#include "rcl/subscription.h"
|
||||||
|
@ -60,6 +61,7 @@ extern "C"
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_init(int argc, char ** argv, rcl_allocator_t allocator);
|
rcl_init(int argc, char ** argv, rcl_allocator_t allocator);
|
||||||
|
|
||||||
|
@ -88,6 +90,7 @@ rcl_init(int argc, char ** argv, rcl_allocator_t allocator);
|
||||||
* RCL_RET_ERROR if an unspecified error occur.
|
* RCL_RET_ERROR if an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_shutdown();
|
rcl_shutdown();
|
||||||
|
|
||||||
|
@ -102,6 +105,7 @@ rcl_shutdown();
|
||||||
* \return a unique id specific to this rcl instance, or 0 if not initialized.
|
* \return a unique id specific to this rcl instance, or 0 if not initialized.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
uint64_t
|
uint64_t
|
||||||
rcl_get_instance_id();
|
rcl_get_instance_id();
|
||||||
|
|
||||||
|
@ -112,6 +116,7 @@ rcl_get_instance_id();
|
||||||
* atomic_is_lock_free() returns true for atomic_uint_least64_t.
|
* atomic_is_lock_free() returns true for atomic_uint_least64_t.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
bool
|
bool
|
||||||
rcl_ok();
|
rcl_ok();
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ extern "C"
|
||||||
|
|
||||||
#include "rosidl_generator_c/message_type_support.h"
|
#include "rosidl_generator_c/message_type_support.h"
|
||||||
|
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/node.h"
|
#include "rcl/node.h"
|
||||||
#include "rcl/visibility_control.h"
|
#include "rcl/visibility_control.h"
|
||||||
|
|
||||||
|
@ -53,6 +54,7 @@ typedef struct rcl_subscription_options_t
|
||||||
* is being allocated on the heap.
|
* is being allocated on the heap.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_subscription_t
|
rcl_subscription_t
|
||||||
rcl_get_zero_initialized_subscription();
|
rcl_get_zero_initialized_subscription();
|
||||||
|
|
||||||
|
@ -127,6 +129,7 @@ rcl_get_zero_initialized_subscription();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_subscription_init(
|
rcl_subscription_init(
|
||||||
rcl_subscription_t * subscription,
|
rcl_subscription_t * subscription,
|
||||||
|
@ -153,11 +156,13 @@ rcl_subscription_init(
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_subscription_fini(rcl_subscription_t * subscription, rcl_node_t * node);
|
rcl_subscription_fini(rcl_subscription_t * subscription, rcl_node_t * node);
|
||||||
|
|
||||||
/// Return the default subscription options in a rcl_subscription_options_t.
|
/// Return the default subscription options in a rcl_subscription_options_t.
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_subscription_options_t
|
rcl_subscription_options_t
|
||||||
rcl_subscription_get_default_options();
|
rcl_subscription_get_default_options();
|
||||||
|
|
||||||
|
@ -204,6 +209,7 @@ rcl_subscription_get_default_options();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_take(
|
rcl_take(
|
||||||
const rcl_subscription_t * subscription,
|
const rcl_subscription_t * subscription,
|
||||||
|
@ -227,6 +233,7 @@ rcl_take(
|
||||||
* \return name string if successful, otherwise NULL
|
* \return name string if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
const char *
|
const char *
|
||||||
rcl_subscription_get_topic_name(const rcl_subscription_t * subscription);
|
rcl_subscription_get_topic_name(const rcl_subscription_t * subscription);
|
||||||
|
|
||||||
|
@ -246,6 +253,7 @@ rcl_subscription_get_topic_name(const rcl_subscription_t * subscription);
|
||||||
* \return options struct if successful, otherwise NULL
|
* \return options struct if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
const rcl_subscription_options_t *
|
const rcl_subscription_options_t *
|
||||||
rcl_subscription_get_options(const rcl_subscription_t * subscription);
|
rcl_subscription_get_options(const rcl_subscription_t * subscription);
|
||||||
|
|
||||||
|
@ -269,6 +277,7 @@ rcl_subscription_get_options(const rcl_subscription_t * subscription);
|
||||||
* \return rmw subscription handle if successful, otherwise NULL
|
* \return rmw subscription handle if successful, otherwise NULL
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rmw_subscription_t *
|
rmw_subscription_t *
|
||||||
rcl_subscription_get_rmw_handle(const rcl_subscription_t * subscription);
|
rcl_subscription_get_rmw_handle(const rcl_subscription_t * subscription);
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/types.h"
|
#include "rcl/types.h"
|
||||||
#include "rcl/visibility_control.h"
|
#include "rcl/visibility_control.h"
|
||||||
|
|
||||||
|
@ -93,6 +94,7 @@ typedef struct rcl_duration_t
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_system_time_point_now(rcl_system_time_point_t * now);
|
rcl_system_time_point_now(rcl_system_time_point_t * now);
|
||||||
|
|
||||||
|
@ -117,6 +119,7 @@ rcl_system_time_point_now(rcl_system_time_point_t * now);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_steady_time_point_now(rcl_steady_time_point_t * now);
|
rcl_steady_time_point_now(rcl_steady_time_point_t * now);
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ extern "C"
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "rcl/allocator.h"
|
#include "rcl/allocator.h"
|
||||||
|
#include "rcl/macros.h"
|
||||||
#include "rcl/time.h"
|
#include "rcl/time.h"
|
||||||
#include "rcl/types.h"
|
#include "rcl/types.h"
|
||||||
#include "rmw/rmw.h"
|
#include "rmw/rmw.h"
|
||||||
|
@ -51,6 +52,7 @@ typedef void (* rcl_timer_callback_t)(rcl_timer_t *, uint64_t);
|
||||||
|
|
||||||
/// Return a zero initialized timer.
|
/// Return a zero initialized timer.
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_timer_t
|
rcl_timer_t
|
||||||
rcl_get_zero_initialized_timer();
|
rcl_get_zero_initialized_timer();
|
||||||
|
|
||||||
|
@ -112,6 +114,7 @@ rcl_get_zero_initialized_timer();
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_init(
|
rcl_timer_init(
|
||||||
rcl_timer_t * timer,
|
rcl_timer_t * timer,
|
||||||
|
@ -136,6 +139,7 @@ rcl_timer_init(
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_fini(rcl_timer_t * timer);
|
rcl_timer_fini(rcl_timer_t * timer);
|
||||||
|
|
||||||
|
@ -169,6 +173,7 @@ rcl_timer_fini(rcl_timer_t * timer);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_call(rcl_timer_t * timer);
|
rcl_timer_call(rcl_timer_t * timer);
|
||||||
|
|
||||||
|
@ -193,6 +198,7 @@ rcl_timer_call(rcl_timer_t * timer);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_is_ready(const rcl_timer_t * timer, bool * is_ready);
|
rcl_timer_is_ready(const rcl_timer_t * timer, bool * is_ready);
|
||||||
|
|
||||||
|
@ -222,6 +228,7 @@ rcl_timer_is_ready(const rcl_timer_t * timer, bool * is_ready);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_get_time_until_next_call(const rcl_timer_t * timer, int64_t * time_until_next_call);
|
rcl_timer_get_time_until_next_call(const rcl_timer_t * timer, int64_t * time_until_next_call);
|
||||||
|
|
||||||
|
@ -248,6 +255,7 @@ rcl_timer_get_time_until_next_call(const rcl_timer_t * timer, int64_t * time_unt
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_get_time_since_last_call(const rcl_timer_t * timer, uint64_t * time_since_last_call);
|
rcl_timer_get_time_since_last_call(const rcl_timer_t * timer, uint64_t * time_since_last_call);
|
||||||
|
|
||||||
|
@ -268,6 +276,7 @@ rcl_timer_get_time_since_last_call(const rcl_timer_t * timer, uint64_t * time_si
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_get_period(const rcl_timer_t * timer, uint64_t * period);
|
rcl_timer_get_period(const rcl_timer_t * timer, uint64_t * period);
|
||||||
|
|
||||||
|
@ -292,6 +301,7 @@ rcl_timer_get_period(const rcl_timer_t * timer, uint64_t * period);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_exchange_period(const rcl_timer_t * timer, uint64_t new_period, uint64_t * old_period);
|
rcl_timer_exchange_period(const rcl_timer_t * timer, uint64_t new_period, uint64_t * old_period);
|
||||||
|
|
||||||
|
@ -308,6 +318,7 @@ rcl_timer_exchange_period(const rcl_timer_t * timer, uint64_t new_period, uint64
|
||||||
* \return function pointer to the callback, or NULL if an error occurred
|
* \return function pointer to the callback, or NULL if an error occurred
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_timer_callback_t
|
rcl_timer_callback_t
|
||||||
rcl_timer_get_callback(const rcl_timer_t * timer);
|
rcl_timer_get_callback(const rcl_timer_t * timer);
|
||||||
|
|
||||||
|
@ -326,6 +337,7 @@ rcl_timer_get_callback(const rcl_timer_t * timer);
|
||||||
* \return function pointer to the old callback, or NULL if an error occurred
|
* \return function pointer to the old callback, or NULL if an error occurred
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_timer_callback_t
|
rcl_timer_callback_t
|
||||||
rcl_timer_exchange_callback(rcl_timer_t * timer, const rcl_timer_callback_t new_callback);
|
rcl_timer_exchange_callback(rcl_timer_t * timer, const rcl_timer_callback_t new_callback);
|
||||||
|
|
||||||
|
@ -347,6 +359,7 @@ rcl_timer_exchange_callback(rcl_timer_t * timer, const rcl_timer_callback_t new_
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_cancel(rcl_timer_t * timer);
|
rcl_timer_cancel(rcl_timer_t * timer);
|
||||||
|
|
||||||
|
@ -368,6 +381,7 @@ rcl_timer_cancel(rcl_timer_t * timer);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_is_canceled(const rcl_timer_t * timer, bool * is_canceled);
|
rcl_timer_is_canceled(const rcl_timer_t * timer, bool * is_canceled);
|
||||||
|
|
||||||
|
@ -387,6 +401,7 @@ rcl_timer_is_canceled(const rcl_timer_t * timer, bool * is_canceled);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_timer_reset(rcl_timer_t * timer);
|
rcl_timer_reset(rcl_timer_t * timer);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2014 Open Source Robotics Foundation, Inc.
|
// Copyright 2015 Open Source Robotics Foundation, Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
|
|
@ -23,8 +23,9 @@ extern "C"
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
#include "rcl/subscription.h"
|
|
||||||
#include "rcl/guard_condition.h"
|
#include "rcl/guard_condition.h"
|
||||||
|
#include "rcl/macros.h"
|
||||||
|
#include "rcl/subscription.h"
|
||||||
#include "rcl/timer.h"
|
#include "rcl/timer.h"
|
||||||
#include "rcl/types.h"
|
#include "rcl/types.h"
|
||||||
#include "rcl/visibility_control.h"
|
#include "rcl/visibility_control.h"
|
||||||
|
@ -49,6 +50,7 @@ typedef struct rcl_wait_set_t
|
||||||
|
|
||||||
/// Return a rcl_wait_set_t struct with members set to NULL.
|
/// Return a rcl_wait_set_t struct with members set to NULL.
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_wait_set_t
|
rcl_wait_set_t
|
||||||
rcl_get_zero_initialized_wait_set();
|
rcl_get_zero_initialized_wait_set();
|
||||||
|
|
||||||
|
@ -93,6 +95,7 @@ rcl_get_zero_initialized_wait_set();
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_init(
|
rcl_wait_set_init(
|
||||||
rcl_wait_set_t * wait_set,
|
rcl_wait_set_t * wait_set,
|
||||||
|
@ -121,6 +124,7 @@ rcl_wait_set_init(
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_fini(rcl_wait_set_t * wait_set);
|
rcl_wait_set_fini(rcl_wait_set_t * wait_set);
|
||||||
|
|
||||||
|
@ -138,6 +142,7 @@ rcl_wait_set_fini(rcl_wait_set_t * wait_set);
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_get_allocator(const rcl_wait_set_t * wait_set, rcl_allocator_t * allocator);
|
rcl_wait_set_get_allocator(const rcl_wait_set_t * wait_set, rcl_allocator_t * allocator);
|
||||||
|
|
||||||
|
@ -157,6 +162,7 @@ rcl_wait_set_get_allocator(const rcl_wait_set_t * wait_set, rcl_allocator_t * al
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_add_subscription(
|
rcl_wait_set_add_subscription(
|
||||||
rcl_wait_set_t * wait_set,
|
rcl_wait_set_t * wait_set,
|
||||||
|
@ -178,6 +184,7 @@ rcl_wait_set_add_subscription(
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_clear_subscriptions(rcl_wait_set_t * wait_set);
|
rcl_wait_set_clear_subscriptions(rcl_wait_set_t * wait_set);
|
||||||
|
|
||||||
|
@ -207,6 +214,7 @@ rcl_wait_set_clear_subscriptions(rcl_wait_set_t * wait_set);
|
||||||
* RCL_RET_ERROR if an unspecified error occurs.
|
* RCL_RET_ERROR if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_resize_subscriptions(rcl_wait_set_t * wait_set, size_t size);
|
rcl_wait_set_resize_subscriptions(rcl_wait_set_t * wait_set, size_t size);
|
||||||
|
|
||||||
|
@ -215,6 +223,7 @@ rcl_wait_set_resize_subscriptions(rcl_wait_set_t * wait_set, size_t size);
|
||||||
* \see rcl_wait_set_add_subscription
|
* \see rcl_wait_set_add_subscription
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_add_guard_condition(
|
rcl_wait_set_add_guard_condition(
|
||||||
rcl_wait_set_t * wait_set,
|
rcl_wait_set_t * wait_set,
|
||||||
|
@ -225,6 +234,7 @@ rcl_wait_set_add_guard_condition(
|
||||||
* \see rcl_wait_set_clear_subscriptions
|
* \see rcl_wait_set_clear_subscriptions
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_clear_guard_conditions(rcl_wait_set_t * wait_set);
|
rcl_wait_set_clear_guard_conditions(rcl_wait_set_t * wait_set);
|
||||||
|
|
||||||
|
@ -233,6 +243,7 @@ rcl_wait_set_clear_guard_conditions(rcl_wait_set_t * wait_set);
|
||||||
* \see rcl_wait_set_resize_subscriptions
|
* \see rcl_wait_set_resize_subscriptions
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_resize_guard_conditions(rcl_wait_set_t * wait_set, size_t size);
|
rcl_wait_set_resize_guard_conditions(rcl_wait_set_t * wait_set, size_t size);
|
||||||
|
|
||||||
|
@ -241,6 +252,7 @@ rcl_wait_set_resize_guard_conditions(rcl_wait_set_t * wait_set, size_t size);
|
||||||
* \see rcl_wait_set_add_subscription
|
* \see rcl_wait_set_add_subscription
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_add_timer(
|
rcl_wait_set_add_timer(
|
||||||
rcl_wait_set_t * wait_set,
|
rcl_wait_set_t * wait_set,
|
||||||
|
@ -251,6 +263,7 @@ rcl_wait_set_add_timer(
|
||||||
* \see rcl_wait_set_clear_subscriptions
|
* \see rcl_wait_set_clear_subscriptions
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_clear_timers(rcl_wait_set_t * wait_set);
|
rcl_wait_set_clear_timers(rcl_wait_set_t * wait_set);
|
||||||
|
|
||||||
|
@ -259,6 +272,7 @@ rcl_wait_set_clear_timers(rcl_wait_set_t * wait_set);
|
||||||
* \see rcl_wait_set_resize_subscriptions
|
* \see rcl_wait_set_resize_subscriptions
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait_set_resize_timers(rcl_wait_set_t * wait_set, size_t size);
|
rcl_wait_set_resize_timers(rcl_wait_set_t * wait_set, size_t size);
|
||||||
|
|
||||||
|
@ -352,6 +366,7 @@ rcl_wait_set_resize_timers(rcl_wait_set_t * wait_set, size_t size);
|
||||||
* RCL_RET_ERROR an unspecified error occur.
|
* RCL_RET_ERROR an unspecified error occur.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
RCL_WARN_UNUSED
|
||||||
rcl_ret_t
|
rcl_ret_t
|
||||||
rcl_wait(rcl_wait_set_t * wait_set, int64_t timeout);
|
rcl_wait(rcl_wait_set_t * wait_set, int64_t timeout);
|
||||||
|
|
||||||
|
|
|
@ -55,14 +55,18 @@ __wait_set_is_valid(const rcl_wait_set_t * wait_set)
|
||||||
static void
|
static void
|
||||||
__wait_set_clean_up(rcl_wait_set_t * wait_set, rcl_allocator_t allocator)
|
__wait_set_clean_up(rcl_wait_set_t * wait_set, rcl_allocator_t allocator)
|
||||||
{
|
{
|
||||||
|
rcl_ret_t ret;
|
||||||
if (wait_set->subscriptions) {
|
if (wait_set->subscriptions) {
|
||||||
rcl_wait_set_resize_subscriptions(wait_set, 0);
|
ret = rcl_wait_set_resize_subscriptions(wait_set, 0);
|
||||||
|
assert(ret == RCL_RET_OK); // Defensive, shouldn't fail with size 0.
|
||||||
}
|
}
|
||||||
if (wait_set->guard_conditions) {
|
if (wait_set->guard_conditions) {
|
||||||
rcl_wait_set_resize_guard_conditions(wait_set, 0);
|
ret = rcl_wait_set_resize_guard_conditions(wait_set, 0);
|
||||||
|
assert(ret == RCL_RET_OK); // Defensive, shouldn't fail with size 0.
|
||||||
}
|
}
|
||||||
if (wait_set->timers) {
|
if (wait_set->timers) {
|
||||||
rcl_wait_set_resize_timers(wait_set, 0);
|
ret = rcl_wait_set_resize_timers(wait_set, 0);
|
||||||
|
assert(ret == RCL_RET_OK); // Defensive, shouldn't fail with size 0.
|
||||||
}
|
}
|
||||||
if (wait_set->impl) {
|
if (wait_set->impl) {
|
||||||
allocator.deallocate(wait_set->impl, allocator.state);
|
allocator.deallocate(wait_set->impl, allocator.state);
|
||||||
|
@ -416,8 +420,11 @@ rcl_wait(rcl_wait_set_t * wait_set, int64_t timeout)
|
||||||
// Check for timeout.
|
// Check for timeout.
|
||||||
if (ret == RMW_RET_TIMEOUT) {
|
if (ret == RMW_RET_TIMEOUT) {
|
||||||
// Assume none were set (because timeout was reached first), and clear all.
|
// Assume none were set (because timeout was reached first), and clear all.
|
||||||
rcl_wait_set_clear_subscriptions(wait_set);
|
rcl_ret_t rcl_ret;
|
||||||
rcl_wait_set_clear_guard_conditions(wait_set);
|
rcl_ret = rcl_wait_set_clear_subscriptions(wait_set);
|
||||||
|
assert(rcl_ret == RCL_RET_OK); // Defensive, shouldn't fail with valid wait_set.
|
||||||
|
rcl_ret = rcl_wait_set_clear_guard_conditions(wait_set);
|
||||||
|
assert(rcl_ret == RCL_RET_OK); // Defensive, shouldn't fail with valid wait_set.
|
||||||
return RCL_RET_TIMEOUT;
|
return RCL_RET_TIMEOUT;
|
||||||
}
|
}
|
||||||
// Set corresponding rcl subscription handles NULL.
|
// Set corresponding rcl subscription handles NULL.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue