summaryrefslogtreecommitdiff
path: root/src/or/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/or/test.c')
-rw-r--r--src/or/test.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/or/test.c b/src/or/test.c
index 652a4ee44f..14ba953544 100644
--- a/src/or/test.c
+++ b/src/or/test.c
@@ -2326,6 +2326,11 @@ test_util_threads(void)
char *s1 = NULL, *s2 = NULL;
int done = 0, timedout = 0;
time_t started;
+#ifndef MS_WINDOWS
+ struct timeval tv;
+ tv.tv_sec=0;
+ tv.tv_usec=10;
+#endif
#ifndef TOR_IS_MULTITHREADED
/* Skip this test if we aren't threading. We should be threading most
* everywhere by now. */
@@ -2355,6 +2360,10 @@ test_util_threads(void)
timedout = done = 1;
}
tor_mutex_release(_thread_test_mutex);
+#ifndef MS_WINDOWS
+ /* Prevent the main thread from starving the worker threads. */
+ select(0, NULL, NULL, NULL, &tv);
+#endif
}
tor_mutex_acquire(_thread_test_start1);