Fix a couple of minor thiings per Jeff's suggestions:
1. Change the hardcoded "8" to "SIZE_OF_CHAR" 2. Change "cover_bit" to "resize" Also removed an extra "if" check that was duplicative. Again, tested on up to 100 processes. This commit was SVN r5983.
Этот коммит содержится в:
родитель
066e49b7be
Коммит
2095525596
@ -71,14 +71,14 @@ orte_bitmap_init(orte_bitmap_t *bm, size_t size)
|
||||
}
|
||||
|
||||
bm->array_size = actual_size;
|
||||
bm->legal_numbits = 8*actual_size;
|
||||
bm->legal_numbits = SIZE_OF_CHAR*actual_size;
|
||||
orte_bitmap_clear_all_bits(bm);
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
orte_bitmap_cover_bit(orte_bitmap_t *bm, size_t bit)
|
||||
orte_bitmap_resize(orte_bitmap_t *bm, size_t bit)
|
||||
{
|
||||
size_t index, new_size, i;
|
||||
|
||||
@ -109,7 +109,7 @@ orte_bitmap_cover_bit(orte_bitmap_t *bm, size_t bit)
|
||||
|
||||
/* Update the array_size */
|
||||
bm->array_size = new_size;
|
||||
bm->legal_numbits = new_size*8;
|
||||
bm->legal_numbits = new_size*SIZE_OF_CHAR;
|
||||
}
|
||||
|
||||
return ORTE_SUCCESS;
|
||||
@ -127,7 +127,7 @@ orte_bitmap_set_bit(orte_bitmap_t *bm, size_t bit)
|
||||
}
|
||||
|
||||
/* make sure the bitmap covers the requested bit */
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_cover_bit(bm, bit))) {
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_resize(bm, bit))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
return rc;
|
||||
}
|
||||
@ -154,7 +154,7 @@ orte_bitmap_clear_bit(orte_bitmap_t *bm, size_t bit)
|
||||
}
|
||||
|
||||
/* make sure the bitmap covers the requested bit */
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_cover_bit(bm, bit))) {
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_resize(bm, bit))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
return rc;
|
||||
}
|
||||
@ -236,7 +236,7 @@ orte_bitmap_find_and_set_first_unset_bit(orte_bitmap_t *bm, size_t *position)
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
/* Neglect all which dont have an unset bit */
|
||||
/* Neglect all which don't have an unset bit */
|
||||
*position = 0;
|
||||
while((i < bm->array_size) && (bm->bitmap[i] == all_ones)) {
|
||||
++i;
|
||||
|
@ -81,7 +81,7 @@ OMPI_DECLSPEC int orte_bitmap_init (orte_bitmap_t *bm, size_t size);
|
||||
* @return ORTE error code or success
|
||||
*
|
||||
*/
|
||||
OMPI_DECLSPEC int orte_bitmap_cover_bit(orte_bitmap_t *bm, size_t bit);
|
||||
OMPI_DECLSPEC int orte_bitmap_resize(orte_bitmap_t *bm, size_t bit);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -75,12 +75,10 @@ bool orte_gpr_replica_check_itag_list(orte_gpr_replica_addr_mode_t addr_mode,
|
||||
* below), we could potentially go outside the range of
|
||||
* the array
|
||||
*/
|
||||
if (orte_gpr_replica_globals.srch_itag.legal_numbits < itags[j]) {
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_cover_bit(&(orte_gpr_replica_globals.srch_itag), itags[j]))) {
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_resize(&(orte_gpr_replica_globals.srch_itag), itags[j]))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
if (entry_itags[i] == itags[j]) { /* found a match */
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_set_bit(&(orte_gpr_replica_globals.srch_itag), itags[j]))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user