Greetings,

I'm attempting to use a libclang-based language server in vscode for cross compiling projects. This language server is working multithreaded and I'm experiencing deadlocks which seem to come frome a race condition, e.g. when I use a debug build of libclang they happen less frequently presumably because the ratio of time spent parsing sources and time spent starting/stopping threads changes and makes it less likely to hit the condition.

Whenever I do hit the deadlock, I observed there are two threads around that are related to clang querying a visual studio installation for platform specifics ("libclang.dll!findVCToolChainViaSetupConfig"). Here is a dump of all the stack traces in such a situation: https://www.paste.org/94037

Now my question is two-fold:
- Since I am cross compiling with a gcc, I don't really need clang to query microsoft platform stuff. If there was a way to suppress these queries, my hope is that the deadlocks disappear. Is there a way to suppress this? - Are you aware of ways for me to get more detailed information on the deadlock situation with the VS.community debugger? I could not easily find information on which locks the OS exactly tried to get, only that it tried to get *some* lock by the calls visible in the stack traces. Is there something built-in and readily available to debug such situations that I missed?

Any help sorting this out is highly appreciated.

Kind regards
Michael

_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to