Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Harden msg/app-bittorrent for parallel executions.
[simgrid.git] / examples / c / app-bittorrent / tracker.c
index abed9ce..d28c2b7 100644 (file)
@@ -33,6 +33,7 @@ void tracker_run(int argc, char* argv[])
   double deadline = xbt_str_parse_double(argv[1], "Invalid deadline");
   xbt_assert(deadline > 0, "Wrong deadline supplied");
 
+  unsigned* seedp = sg_host_get_data(sg_host_self());
   // Building peers array
   xbt_dynar_t peers_list = xbt_dynar_new(sizeof(int), NULL);
 
@@ -61,7 +62,7 @@ void tracker_run(int argc, char* argv[])
       int peers_length = (int)xbt_dynar_length(peers_list);
       for (int i = 0; i < MAXIMUM_PEERS && i < peers_length; i++) {
         do {
-          next_peer = xbt_dynar_get_as(peers_list, rand() % peers_length, int);
+          next_peer = xbt_dynar_get_as(peers_list, rand_r(seedp) % peers_length, int);
         } while (is_in_list(ta->peers, next_peer));
         xbt_dynar_push_as(ta->peers, int, next_peer);
       }