static int factor_cmp(const void *pa, const void *pb)
{
- return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor);
+ return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor) ? 1 :
+ (((s_smpi_factor_t*)pa)->factor < ((s_smpi_factor_t*)pb)->factor) ? -1 : 0;
}
char *value = NULL;
unsigned int iter = 0;
s_smpi_factor_t fact;
+ fact.nb_values=0;
int i=0;
xbt_dynar_t smpi_factor, radical_elements, radical_elements2 = NULL;
smpi_factor = xbt_dynar_new(sizeof(s_smpi_factor_t), NULL);
radical_elements = xbt_str_split(smpi_coef_string, ";");
xbt_dynar_foreach(radical_elements, iter, value) {
- fact.nb_values=0;
+ memset(&fact, 0, sizeof(s_smpi_factor_t));
radical_elements2 = xbt_str_split(value, ":");
if (xbt_dynar_length(radical_elements2) <2 || xbt_dynar_length(radical_elements2) > 5)
xbt_die("Malformed radical for smpi factor!");
void smpi_mpi_startall(int count, MPI_Request * requests)
{
int i;
+ if(requests==NULL) return;
for(i = 0; i < count; i++) {
smpi_mpi_start(requests[i]);