From 4422399e298e40629db70642e781ddd76f460548 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Tue, 07 Mar 2017 12:16:18 +0000
Subject: [PATCH] Fix multi-thread rand()

---
 src/data.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/data.c b/src/data.c
index 19dca8a..311f882 100644
--- a/src/data.c
+++ b/src/data.c
@@ -39,18 +39,23 @@
 }
 */
 
+int mt_seed = 0;
+
 char **get_random_paths(char **paths, int n, int m)
 {
     char **random_paths = calloc(n, sizeof(char*));
     int i;
     pthread_mutex_lock(&mutex);
+	if (mt_seed == 0) mt_seed = time(0);
+	srand(mt_seed);
 	//printf("n = %d \n", n);
-    for(i = 0; i < n; ++i){
-        int index = (rand()*rand())%m;
+    for(i = 0; i < n; ++i){		
+        int index = rand()%m;		
         random_paths[i] = paths[index];
         //if(i == 0) printf("%s\n", paths[index]);
-		//printf("%s\n", paths[index]);
+		//printf("grp: %s\n", paths[index]);
     }
+	mt_seed = rand();
     pthread_mutex_unlock(&mutex);
     return random_paths;
 }

--
Gitblit v1.10.0