diff --git a/rmw_zenoh_cpp/src/rmw_init.cpp b/rmw_zenoh_cpp/src/rmw_init.cpp index 1e6da94c..201118c6 100644 --- a/rmw_zenoh_cpp/src/rmw_init.cpp +++ b/rmw_zenoh_cpp/src/rmw_init.cpp @@ -255,7 +255,11 @@ rmw_init(const rmw_init_options_t * options, rmw_context_t * context) "Sending Query '%s' to fetch discovery data...", liveliness_str.c_str() ); - z_owned_reply_channel_t channel = zc_reply_fifo_new(16); + // Without setting the bound value to 0, the liveliness get call + // block execution where there are more than 3 nodes in the graph. + // From the zenoh-c documentation: If `bound` is different from 0, that channel will be bound and apply back-pressure when full. + // TODO(Yadunund): Investigate why this is the case and try switching to callbacks instead. + z_owned_reply_channel_t channel = zc_reply_fifo_new(0); zc_liveliness_get( z_loan(context->impl->session), z_keyexpr(liveliness_str.c_str()), z_move(channel.send), NULL);