[llvm-commits] [llvm] r158770 - in /llvm/trunk: include/llvm/Support/FileSystem.h lib/Support/Unix/PathV2.inc lib/Support/Windows/PathV2.inc unittests/Support/Path.cpp

Nick Kledzik kledzik at apple.com
Tue Jun 26 15:18:10 PDT 2012


On Jun 21, 2012, at 7:01 PM, Michael Spencer wrote:

> On Thu, Jun 21, 2012 at 6:36 PM, Nick Kledzik <kledzik at apple.com> wrote:
>> On Jun 21, 2012, at 4:14 PM, Michael Spencer wrote:
>>> On Thu, Jun 21, 2012 at 3:58 PM, Galina Kistanova <gkistanova at gmail.com> wrote:
>>>> ok, never mind then.
>>>> 
>>>> Thanks
>>>> 
>>>> Galina
>>> 
>>> Actually, forget that. These interfaces cannot even be implemented in
>>> a thread safe way on Windows. Somehow I forgot that while reviewing
>>> this patch. The interface has to be redesigned.
>> 
>> No tears here.  I never really liked the N3365 interface.  What specifically is the thread safety issue?
>> 
>> -Nick
> 
> The permissions are fine. It's the file mapping stuff. Unmapping a
> file in windows requires 3 different handles (the file handle, the
> mapping handle, and the specific map handle (the memory address)) ;/


Given that I added the map_file_pages functions to FileSystem.h to support a new /Support/FileOutputBuffer class and that supporting Windows will mean changing the map_file_pages API to track the three handles, would it make more sense to just remove the ma map_file_pages stuff from FileSystem.h and instead have the implementation of FileOutputBuffer do the #include blah.inc trick to have different Windows and Unix implementations?

-Nick





More information about the llvm-commits mailing list