X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c16427c701f029004682390ffbd174c35ba19ecf..e9c35254484ca4a3f5459a3e853bee6ccdd65a58:/contrib/benchmarking_code_block/inject.h diff --git a/contrib/benchmarking_code_block/inject.h b/contrib/benchmarking_code_block/inject.h index a79ac2863d..f5a9261ecd 100644 --- a/contrib/benchmarking_code_block/inject.h +++ b/contrib/benchmarking_code_block/inject.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2014. The SimGrid Team. +/* Copyright (c) 2013-2019. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -56,8 +56,7 @@ static inline void xbt_inject_init(char *inputfile) { xbt_dict_t mydict = get_dict(); FILE* fpInput = fopen(inputfile, "r"); - if (fpInput == NULL) - printf("Error while opening the inputfile"); + xbt_assert(fpInput != NULL, "Error while opening the inputfile"); fseek(fpInput, 0, 0); char line[200]; @@ -66,7 +65,8 @@ static inline void xbt_inject_init(char *inputfile) if (fgets(line, 200, fpInput) == NULL) printf("Error input file is empty!"); // Skipping first row while (fgets(line, 200, fpInput) != NULL) { - key = strtok(line, "\t"); + char *saveptr = NULL; /* for strtok_r() */ + key = strtok_r(line, "\t", &saveptr); xbt_hist_t* data = xbt_dict_get_or_null(mydict, key); if (data) @@ -75,16 +75,16 @@ static inline void xbt_inject_init(char *inputfile) data = (xbt_hist_t*)xbt_new(xbt_hist_t, 1); data->block_id = key; - data->counts = atoi(strtok(NULL, "\t")); - data->mean = atof(strtok(NULL, "\t")); - data->n = atoi(strtok(NULL, "\t")); + data->counts = atoi(strtok_r(NULL, "\t", &saveptr)); + data->mean = atof(strtok_r(NULL, "\t", &saveptr)); + data->n = atoi(strtok_r(NULL, "\t", &saveptr)); data->breaks = (double*)malloc(sizeof(double) * data->n); data->percentage = (double*)malloc(sizeof(double) * (data->n - 1)); for (int i = 0; i < data->n; i++) - data->breaks[i] = atof(strtok(NULL, "\t")); + data->breaks[i] = atof(strtok_r(NULL, "\t", &saveptr)); for (int i = 0; i < (data->n - 1); i++) - data->percentage[i] = atof(strtok(NULL, "\t")); + data->percentage[i] = atof(strtok_r(NULL, "\t", &saveptr)); xbt_dict_set(mydict, key, data, NULL); } @@ -118,7 +118,8 @@ static inline void inject_init_starpu(char *inputfile, xbt_dict_t *dict, RngStre } while (fgets(line, MAX_LINE_INJ, fpInput) != NULL) { - key = strtok(line, "\t"); + char *saveptr = NULL; /* for strtok_r() */ + key = strtok_r(line, "\t", &saveptr); xbt_hist_t* data = xbt_dict_get_or_null(mydict, key); if (data) @@ -126,16 +127,16 @@ static inline void inject_init_starpu(char *inputfile, xbt_dict_t *dict, RngStre data = (xbt_hist_t*)xbt_new(xbt_hist_t, 1); data->block_id = key; - data->counts = atoi(strtok(NULL, "\t")); - data->mean = atof(strtok(NULL, "\t")); - data->n = atoi(strtok(NULL, "\t")); + data->counts = atoi(strtok_r(NULL, "\t", &saveptr)); + data->mean = atof(strtok_r(NULL, "\t", &saveptr)); + data->n = atoi(strtok_r(NULL, "\t", &saveptr)); data->breaks = (double*)malloc(sizeof(double) * data->n); data->percentage = (double*)malloc(sizeof(double) * (data->n - 1)); for (int i = 0; i < data->n; i++) - data->breaks[i] = atof(strtok(NULL, "\t")); + data->breaks[i] = atof(strtok_r(NULL, "\t", &saveptr)); for (int i = 0; i < (data->n - 1); i++) { - data->percentage[i] = atof(strtok(NULL, "\t")); + data->percentage[i] = atof(strtok_r(NULL, "\t", &saveptr)); } xbt_dict_set(mydict, key, data, NULL);