Closed garyfurnish closed 7 years ago
See also deadlock in ex_generic_executor_ref.exe Also ex_serial_executor.exe Also ex_parallel_quick_sort_lib.exe Also ex_fib_task_region.exe Also task_region_p.exe
Do you know if the last VS versions don't define BOOST_NO_SFINAE_EXPR?
I suspect that there is a missing thread::interrupt before the call to join
void join()
{
for (unsigned i = 0; i < threads.size(); ++i)
{
threads[i].interrupt(); // missing
threads[i].join();
}
}
My understanding is BOOST_NO_SFINAE_EXPR is not set but BOOST_NO_CXX11_SFINAE_EXPR is set.
I made the change to executors/basic_thread_pool.hpp (I'm assuming that is what you are talking about) and that appears to cause termination in basic_thread_pool::worker_thread. If thats not what you are talking about I'm not sure where it is missing from.
Yes, I need to catch the thread_interrupted exception :)
Ok if you put up a patch I'll test it tomorrow.
Tests clean and closing as fixed by 39c23dd.
Thanks a lot for reporting those issues.
Deadlock requires end-task to continue tests. Produced in 3222938 with 2017.4 preview, suspect also occurs in 2017.3. Tested in debug, address-model=64. Maybe related to #134 and #135 and #136 All Threads appear to be stuck on thread.cpp line 741. Main thread call stack:
Worker thread:
Will make some dumps if needed.