ilya-biryukov added a comment.

In D54995#1312617 <https://reviews.llvm.org/D54995#1312617>, @lebedev.ri wrote:

> Passing-by thought, feel free to ignore: this seems to so far only affect 
> windows only?
>  So the fix shouldn't probably pessimize all other arches? (and maybe even 
> non-clangd)


Sure, we'll make sure to keep the compiler and libclang/clangd on non-windows 
archs still use memory-mapped files.
I even have hopes there are ways to workaround the locks on Windows, but I'm 
probably too optimistic.

In D54995#1312532 <https://reviews.llvm.org/D54995#1312532>, @yvvan wrote:

> According to 
> https://msdn.microsoft.com/en-us/2e9c3174-af48-4fa3-9f6a-fb62b23ed994 - 
> "Unmapping a mapped view of a file invalidates the range occupied by the view 
> in the address space of the process and makes the range available for other 
> allocations".
>  Also as far as i understand from 
> https://msdn.microsoft.com/en-us/library/ms810613.aspx mapped files can only 
> be edited in other apps as mapped files opened with the same name 
> (OpenFileMapping).


I couldn't find any reference to file locking in those docs (I haven't 
thoroughly read the second one, though, so I might've missed it). Will check 
out your example program, thanks for posting it!

In D54995#1314133 <https://reviews.llvm.org/D54995#1314133>, @yvvan wrote:

> No success with unmapping. Buffers are hold by PCMCache in Preprocessor (and 
> the same one in ASTReader) and if I clean them then SourceManger crashed 
> sooner or later on some call that gets data from external files.
>  So far I have no steps to reproduce the lock on user file so I don't 
> currently know if I try something else.


Unmapping definitely won't work, there are a ton of operations that might 
require the file contents. I don't think we can make clang code avoid reading 
the files it previously had opened.
If no workaround works, reading files on windows instead of memory-mapping them 
is probably the only option for interactive editors.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D54995/new/

https://reviews.llvm.org/D54995



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

Reply via email to