mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
testsuite: Prevent the main thread from starving the worker threads
This commit is contained in:
parent
a02923122e
commit
5e679acc72
@ -1,3 +1,8 @@
|
||||
o Minor bugfixes:
|
||||
- Testsuite: In the util/threads test no longer free the test_mutex
|
||||
before all worker threads have finished.
|
||||
- Testsuite: The master thread could starve the worker threads quite
|
||||
badly on certain systems, causing them to run only partially in
|
||||
the allowed window. This resulted in test failures. Now the master
|
||||
thread sleeps occasionally for a few microseconds while the two
|
||||
worker-threads compete for the mutex.
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user