- added cleanup to destructor
- added copy routine to copy state from one sequence tracker into another This commit was SVN r9813.
Этот коммит содержится в:
родитель
b76b46bcec
Коммит
14293acce0
@ -36,7 +36,11 @@ static void ompi_seq_tracker_construct(ompi_seq_tracker_t* seq_tracker) {
|
||||
}
|
||||
|
||||
|
||||
static void ompi_seq_tracker_destruct(ompi_seq_tracker_t* seq_tracker) {
|
||||
static void ompi_seq_tracker_destruct(ompi_seq_tracker_t* seq_tracker)
|
||||
{
|
||||
opal_list_item_t* item;
|
||||
while(NULL != (item = opal_list_remove_first(&seq_tracker->seq_ids)))
|
||||
OBJ_RELEASE(item);
|
||||
OBJ_DESTRUCT(&seq_tracker->seq_ids);
|
||||
}
|
||||
|
||||
@ -177,6 +181,19 @@ void ompi_seq_tracker_insert(ompi_seq_tracker_t* seq_tracker,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void ompi_seq_tracker_copy(ompi_seq_tracker_t* dst, ompi_seq_tracker_t* src)
|
||||
{
|
||||
opal_list_item_t* item;
|
||||
for( item = opal_list_get_first(&src->seq_ids);
|
||||
item != opal_list_get_end(&src->seq_ids);
|
||||
item = opal_list_get_next(item)) {
|
||||
ompi_seq_tracker_range_t* src_item = (ompi_seq_tracker_range_t*)item;
|
||||
ompi_seq_tracker_range_t* dst_item = OBJ_NEW(ompi_seq_tracker_range_t);
|
||||
dst_item->seq_id_high = src_item->seq_id_high;
|
||||
dst_item->seq_id_low = src_item->seq_id_low;
|
||||
opal_list_append(&dst->seq_ids, &dst_item->super);
|
||||
if(src->seq_ids_current == src_item) {
|
||||
dst->seq_ids_current = dst_item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -63,8 +63,12 @@ bool ompi_seq_tracker_check_duplicate(
|
||||
* insert item into sequence tracking list,
|
||||
* compacts continuous regions into a single entry
|
||||
*/
|
||||
void ompi_seq_tracker_insert(ompi_seq_tracker_t* seq_tracker,
|
||||
uint32_t seq_i);
|
||||
void ompi_seq_tracker_insert(ompi_seq_tracker_t* seq_tracker, uint32_t seq_i);
|
||||
|
||||
/*
|
||||
* Copy state from one sequence tracker list into another.
|
||||
*/
|
||||
void ompi_seq_tracker_copy(ompi_seq_tracker_t* dst, ompi_seq_tracker_t* src);
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user