mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
threaded test_suite_runner.c3 (#2642)
* threaded test_suite_runner.c3 - Added a simple threadpool - Fixed the status line updates - Implemented the #skip for tests - Added ansi color to the final status line It works as one expects reducing the total runner time by the allocated number of threads. Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * fix thread_number and a test Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * added choice of "--thread [N]" or defaults to os::num_cpu() Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * added unique explicit --build-dir to the compiler and also print the c3c command line for debugging Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * disable "run compiler tests" for msvc-debug build it takes like 1:30hs Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * buffer printouts and correct ordering of tests Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * added progress bar - removed some \r carrier return stuff Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * Fix bug in fixed pool. Improve progress bar * Add color to bar. * Some renaming. * fix some leaky leaks Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * each test output is printed immediately Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> * Formatting, remove comment. Re-enable MSVC debug test. --------- Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com> Co-authored-by: Christoffer Lerno <christoffer@aegik.com>
This commit is contained in:
@@ -69,11 +69,14 @@ fn void? FixedThreadPool.join(&self) @maydiscard // Remove optional in 0.8.0
|
||||
{
|
||||
if (self.initialized)
|
||||
{
|
||||
self.mu.lock();
|
||||
self.mu.lock()!!;
|
||||
defer self.mu.unlock();
|
||||
self.joining = true;
|
||||
self.notify.broadcast();
|
||||
self.collect.wait(&self.mu);
|
||||
do
|
||||
{
|
||||
self.notify.broadcast();
|
||||
self.collect.wait(&self.mu);
|
||||
} while (self.qindex != 0 || self.qworking != 0);
|
||||
self.joining = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user