<div dir="ltr"><div class="gmail_default" style="font-size:small">Hi,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">As I mentioned earlier, I had been looking into various issues with the std::thread based implementation of the ThreadPoolExecutor running on Windows. The main reason for this is that we have been seeing a lot of crashes during exit when using the MS Concurrency Run-time based executor in combination with the MSVC static debug CRT.<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I have created the following patch based on my work so far:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">  <a href="https://reviews.llvm.org/D40366">https://reviews.llvm.org/D40366</a></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This appears to resolve the issues we've experienced on Windows and has been tested on Linux too. However, we've never seen any issues on Linux, even before these changes.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Takumi, is there any chance you could try out this patch to see if it helps resolve your issue?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Regards,</div><div class="gmail_default" style="font-size:small">Andrew<br></div><div class="gmail_default" style="font-size:small"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 7 November 2017 at 16:59, Rafael Avila de Espindola via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">NAKAMURA Takumi <<a href="mailto:geek4civic@gmail.com">geek4civic@gmail.com</a>> writes:<br>
<br>
> Rafael, I tried a few stories you suggested.<br>
><br>
> 1) Launch noop(return nullptr) and detach it in main context<br>
> I saw crash in pthread_detach.<br>
><br>
> 2) Avoid grandchildren. Just launch threads in main context.<br>
> I couldn't happen crash in a million run.<br>
> Note, it's a devil's proof.<br>
<br>
</span>Care to benchmark that and send for review?<br>
<div class="HOEnZb"><div class="h5"><br>
Cheers,<br>
Rafael<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>