| 
					
				 | 
			
			
				@@ -1368,18 +1368,24 @@ static strmap_t *_thread_test_strmap = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void _thread_test_func(void* _s) ATTR_NORETURN; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int t1_count = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int t2_count = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _thread_test_func(void* _s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   char *s = _s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  int i, *count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tor_mutex_t *m; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   char buf[64]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   char *cp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (!strcmp(s, "thread 1")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!strcmp(s, "thread 1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     m = _thread_test_start1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    count = &t1_count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     m = _thread_test_start2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    count = &t2_count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tor_mutex_acquire(m); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tor_snprintf(buf, sizeof(buf), "%lu", tor_get_thread_id()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1388,6 +1394,7 @@ _thread_test_func(void* _s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (i=0; i<100000; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tor_mutex_acquire(_thread_test_mutex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     strmap_set(_thread_test_strmap, "last to run", cp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ++*count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tor_mutex_release(_thread_test_mutex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tor_mutex_acquire(_thread_test_mutex); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1438,6 +1445,7 @@ test_threads(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tor_mutex_free(_thread_test_mutex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (timedout) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printf("\nTimed out: %d %d", t1_count, t2_count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     test_assert(strmap_get(_thread_test_strmap, "thread 1")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     test_assert(strmap_get(_thread_test_strmap, "thread 2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     test_assert(!timedout); 
			 |