diff --git a/src/core/ddsc/src/dds__entity.h b/src/core/ddsc/src/dds__entity.h index 992c15a..34c13c5 100644 --- a/src/core/ddsc/src/dds__entity.h +++ b/src/core/ddsc/src/dds__entity.h @@ -84,6 +84,9 @@ dds_entity_claim ( dds_entity_t hdl, dds_entity **eptr); +DDS_EXPORT void dds_entity_release ( + dds_entity *e); + DDS_EXPORT dds_retcode_t dds_entity_lock( dds_entity_t hdl, diff --git a/src/core/ddsc/src/dds_entity.c b/src/core/ddsc/src/dds_entity.c index f8a4e14..e06beee 100644 --- a/src/core/ddsc/src/dds_entity.c +++ b/src/core/ddsc/src/dds_entity.c @@ -761,6 +761,11 @@ dds_retcode_t dds_entity_claim (dds_entity_t hdl, dds_entity **eptr) } } +void dds_entity_release (dds_entity *e) +{ + dds_handle_release (&e->m_hdllink); +} + dds_retcode_t dds_entity_lock (dds_entity_t hdl, dds_entity_kind_t kind, dds_entity **eptr) { dds_retcode_t hres; @@ -989,7 +994,7 @@ dds_return_t dds_generic_unimplemented_operation_manykinds (dds_entity_t handle, break; } } - dds_handle_release (&e->m_hdllink); + dds_entity_release (e); return DDS_ERRNO (ret); } } diff --git a/src/core/ddsc/src/dds_readcond.c b/src/core/ddsc/src/dds_readcond.c index 322af8e..ee37521 100644 --- a/src/core/ddsc/src/dds_readcond.c +++ b/src/core/ddsc/src/dds_readcond.c @@ -100,13 +100,11 @@ dds_entity_t dds_get_datareader (dds_entity_t condition) rdh = DDS_ERRNO (DDS_RETCODE_ILLEGAL_OPERATION); break; } - dds_handle_release (&e->m_hdllink); + dds_entity_release (e); return rdh; } } - - dds_return_t dds_get_mask (dds_entity_t condition, uint32_t *mask) { dds_entity *entity; diff --git a/src/core/ddsc/src/dds_reader.c b/src/core/ddsc/src/dds_reader.c index 2c14994..dcc3289 100644 --- a/src/core/ddsc/src/dds_reader.c +++ b/src/core/ddsc/src/dds_reader.c @@ -384,7 +384,7 @@ dds_create_reader( } else { subscriber = participant_or_subscriber; } - dds_handle_release (&p_or_s->m_hdllink); + dds_entity_release (p_or_s); internal_topic = false; t = topic; break; @@ -512,7 +512,7 @@ void dds_reader_ddsi2direct (dds_entity_t entity, ddsi2direct_directread_cb_t cb if (dds_entity_kind (dds_entity) != DDS_KIND_READER) { - dds_handle_release (&dds_entity->m_hdllink); + dds_entity_release (dds_entity); return; } @@ -552,7 +552,7 @@ void dds_reader_ddsi2direct (dds_entity_t entity, ddsi2direct_directread_cb_t cb ddsrt_mutex_lock (&rd->e.lock); } ddsrt_mutex_unlock (&rd->e.lock); - dds_handle_release (&dds_rd->m_entity.m_hdllink); + dds_entity_release (dds_entity); } uint32_t dds_reader_lock_samples (dds_entity_t reader) @@ -613,7 +613,7 @@ dds_entity_t dds_get_subscriber (dds_entity_t entity) subh = DDS_ERRNO (DDS_RETCODE_ILLEGAL_OPERATION); break; } - dds_handle_release (&e->m_hdllink); + dds_entity_release (e); return subh; } } diff --git a/src/core/ddsc/src/dds_writer.c b/src/core/ddsc/src/dds_writer.c index 06a13ef..5bd81d6 100644 --- a/src/core/ddsc/src/dds_writer.c +++ b/src/core/ddsc/src/dds_writer.c @@ -388,7 +388,7 @@ dds_create_writer( } else { publisher = participant_or_publisher; } - dds_handle_release (&p_or_p->m_hdllink); + dds_entity_release (p_or_p); } if ((rc = dds_publisher_lock(publisher, &pub)) != DDS_RETCODE_OK) { @@ -494,7 +494,7 @@ dds_get_publisher( assert (dds_entity_kind (e->m_parent) == DDS_KIND_PUBLISHER); pubh = e->m_parent->m_hdllink.hdl; } - dds_handle_release (&e->m_hdllink); + dds_entity_release (e); return pubh; } }