diff --git a/include/zenoh-pico/session/interest.h b/include/zenoh-pico/session/interest.h index 79879a08f..a4eeb43ba 100644 --- a/include/zenoh-pico/session/interest.h +++ b/include/zenoh-pico/session/interest.h @@ -23,9 +23,9 @@ _z_session_interest_rc_t *_z_get_interest_by_id(_z_session_t *zn, const _z_zint_t id); _z_session_interest_rc_t *_z_register_interest(_z_session_t *zn, _z_session_interest_t *intr); void _z_unregister_interest(_z_session_t *zn, _z_session_interest_rc_t *intr); -void _z_flush_interest(_z_session_t *zn); #endif // Z_FEATURE_INTEREST == 1 +void _z_flush_interest(_z_session_t *zn); int8_t _z_interest_process_declares(_z_session_t *zn, const _z_declaration_t *decl); int8_t _z_interest_process_undeclares(_z_session_t *zn, const _z_declaration_t *decl); int8_t _z_interest_process_final_interest(_z_session_t *zn, uint32_t id); diff --git a/include/zenoh-pico/session/session.h b/include/zenoh-pico/session/session.h index 102ed6490..5f2980d86 100644 --- a/include/zenoh-pico/session/session.h +++ b/include/zenoh-pico/session/session.h @@ -237,7 +237,7 @@ typedef struct { uint8_t _type; } _z_declare_data_t; -void _z_declare_data_clear(_z_declare_data_t * data); +void _z_declare_data_clear(_z_declare_data_t *data); _Z_ELEM_DEFINE(_z_declare_data, _z_declare_data_t, _z_noop_size, _z_declare_data_clear, _z_noop_copy) _Z_LIST_DEFINE(_z_declare_data, _z_declare_data_t) diff --git a/src/session/interest.c b/src/session/interest.c index b7fe621ed..499a917d6 100644 --- a/src/session/interest.c +++ b/src/session/interest.c @@ -351,6 +351,7 @@ void _z_unregister_interest(_z_session_t *zn, _z_session_interest_rc_t *intr) { void _z_flush_interest(_z_session_t *zn) { _zp_session_lock_mutex(zn); _z_session_interest_rc_list_free(&zn->_local_interests); + _z_declare_data_list_free(&zn->_remote_declares); _zp_session_unlock_mutex(zn); } @@ -407,6 +408,8 @@ int8_t _z_interest_process_declare_interest(_z_session_t *zn, _z_keyexpr_t key, } #else +void _z_flush_interest(_z_session_t *zn) { _ZP_UNUSED(zn); } + int8_t _z_interest_process_declares(_z_session_t *zn, const _z_declaration_t *decl) { _ZP_UNUSED(zn); _ZP_UNUSED(decl); diff --git a/src/session/utils.c b/src/session/utils.c index d5d7fe1d7..eac976016 100644 --- a/src/session/utils.c +++ b/src/session/utils.c @@ -18,6 +18,7 @@ #include "zenoh-pico/config.h" #include "zenoh-pico/protocol/core.h" +#include "zenoh-pico/session/interest.h" #include "zenoh-pico/session/query.h" #include "zenoh-pico/session/queryable.h" #include "zenoh-pico/session/resource.h" @@ -115,6 +116,7 @@ void _z_session_clear(_z_session_t *zn) { #if Z_FEATURE_QUERY == 1 _z_flush_pending_queries(zn); #endif + _z_flush_interest(zn); #if Z_FEATURE_MULTI_THREAD == 1 zp_mutex_free(&zn->_mutex_inner);