add dds_entity_release counterpart to entity_claim
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
		
							parent
							
								
									7382c682de
								
							
						
					
					
						commit
						1dad5d6493
					
				
					 5 changed files with 16 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue