[cfe-dev] libclang locking files for write/delete on windows

Reid Kleckner rnk at google.com
Mon Dec 8 11:02:07 PST 2014


We use this code to open files for reading on Windows:
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Path.inc?view=markup#l756

See the FILE_SHARE_READ | FILE_SHARE_WRITE flags. We could add
FILE_SHARE_DELETE and see if that fixes your problem.

Note that locking files against writes or deletions while reading them is
pretty common on Windows. MSVC, for example, does this to sources and
headers during compilation.

On Fri, Dec 5, 2014 at 1:13 PM, Ivan Koster <ivankoster at gmail.com> wrote:

> Hello,
>
> I was requested in https://github.com/Valloric/ycmd/issues/61 to post
> about a file locking problem on windows. In that thread the suspicion was
> raised that libclang.dll locks header files for writing or delete.
>
> I am writing a plugin that uses YCMD, which uses libclang to provide
> autocomplete and goto definition among other services.
>
> To be completely honest, libclang and ycmd are a black box for me and I
> have no idea on their internals, how libclang.dll and YCMD interact or how
> to start debugging this.
> In the above link you can find a .c and .h file that for me consistently
> lock the files on windows 7 64bit. Only very few header files of my
> projects get locked, and they all use a code construct as in the above
> provided .c and .h file. From my experimenting, the header file also seems
> to must be above a certain size for the lock to occur.
>
> I'm hoping the above is sufficient to pin down the problem.
> If more information is need I'm happy to help.
>
> Greetings,
>
> Ivan
>
>
>
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20141208/27fe52b6/attachment.html>


More information about the cfe-dev mailing list