[Lldb-commits] [lldb] r224310 - Instead of rolling our own, use the C++11 sanctioned solution

Zachary Turner zturner at google.com
Tue Dec 16 13:12:48 PST 2014


Cool thanks for the heads up.  I was just about to do it.

On Tue Dec 16 2014 at 1:11:38 PM Enrico Granata <egranata at apple.com> wrote:

> I already checked in a fix (or at least I think I did - the commit emails
> have been trickling in quite slowly lately)
>
> On Dec 16, 2014, at 11:16 AM, Zachary Turner <zturner at google.com> wrote:
>
> Heh, interesting.  Didn't know that.  I will change to #include and check
> it in, thanks for the explanation of why it worked.
>
> On Tue Dec 16 2014 at 11:10:20 AM Enrico Granata <egranata at apple.com>
> wrote:
>
>> It says #import because of my silly brain, actually
>> And, yes, it compiles on OS X - clang is quite happy to oblige ObjC
>> directives even if it’s not ObjC code
>>
>> On Dec 16, 2014, at 11:03 AM, Zachary Turner <zturner at google.com> wrote:
>>
>> Why does this say #import instead of #include?  Does this actually
>> compile on MacOSX?  I'm assuming it's just a typo for #include, but I'm
>> curious why this ever worked at all on any platform.
>>
>> On Mon Dec 15 2014 at 8:34:14 PM Enrico Granata <egranata at apple.com>
>> wrote:
>>
>>> Author: enrico
>>> Date: Mon Dec 15 20:34:13 2014
>>> New Revision: 224310
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=224310&view=rev
>>> Log:
>>> Instead of rolling our own, use the C++11 sanctioned solution
>>>
>>> Modified:
>>>     lldb/trunk/source/Core/ConstString.cpp
>>>
>>> Modified: lldb/trunk/source/Core/ConstString.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/
>>> Core/ConstString.cpp?rev=224310&r1=224309&r2=224310&view=diff
>>> ============================================================
>>> ==================
>>> --- lldb/trunk/source/Core/ConstString.cpp (original)
>>> +++ lldb/trunk/source/Core/ConstString.cpp Mon Dec 15 20:34:13 2014
>>> @@ -11,6 +11,8 @@
>>>  #include "lldb/Host/Mutex.h"
>>>  #include "llvm/ADT/StringMap.h"
>>>
>>> +#import <mutex>
>>> +
>>>  using namespace lldb_private;
>>>
>>>
>>> @@ -184,25 +186,16 @@ protected:
>>>  // we can't guarantee that some objects won't get destroyed after the
>>>  // global destructor chain is run, and trying to make sure no
>>> destructors
>>>  // touch ConstStrings is difficult.  So we leak the pool instead.
>>> -//
>>> -// FIXME: If we are going to keep it this way we should come up with
>>> some
>>> -// abstraction to "pthread_once" so we don't have to check the pointer
>>> -// every time.
>>>  //----------------------------------------------------------
>>> ------------
>>>  static Pool &
>>>  StringPool()
>>>  {
>>> -    static Mutex g_pool_initialization_mutex;
>>> +    static std::once_flag g_pool_initialization_flag;
>>>      static Pool *g_string_pool = NULL;
>>>
>>> -    if (g_string_pool == NULL)
>>> -    {
>>> -        Mutex::Locker initialization_locker(g_pool_
>>> initialization_mutex);
>>> -        if (g_string_pool == NULL)
>>> -        {
>>> -            g_string_pool = new Pool();
>>> -        }
>>> -    }
>>> +    std::call_once(g_pool_initialization_flag, [] () {
>>> +        g_string_pool = new Pool();
>>> +    });
>>>
>>>      return *g_string_pool;
>>>  }
>>>
>>>
>>> _______________________________________________
>>> lldb-commits mailing list
>>> lldb-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>>>
>>
>> Thanks,
>> *- Enrico*
>> 📩 egranata@.com ☎️ 27683
>>
>>
>>
>>
>>
> Thanks,
> *- Enrico*
> 📩 egranata@.com ☎️ 27683
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20141216/e111b12b/attachment.html>


More information about the lldb-commits mailing list