[Lldb-commits] [PATCH] D62316: DWARFContext: Make loading of sections thread-safe

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri May 24 00:40:30 PDT 2019


labath marked an inline comment as done.
labath added a comment.

In D62316#1513905 <https://reviews.llvm.org/D62316#1513905>, @clayborg wrote:

> In D62316#1513894 <https://reviews.llvm.org/D62316#1513894>, @labath wrote:
>
> > Two other options I see are:
> >
> > - initialize the sections immediately after creating the dwarf context. The main advantage of that would that it alings to code more with llvm (which also loads the sections up-front), and slighly faster subsequent accesses to the debug info. I don't think this should negatively impact the start up time, as the files are mmapped anyway, and so the "loading" will consist of some basic pointer arithmetic. Also, the SymbolFileDWARF object as a whole is created lazily, so the fact that it is being created means that somebody is going to access it immediately after that. And he cannot do anything with the symbol file without touching at least the debug_info section, which accounts for about 80% of all debug info.
>
>
> I'd be fine with this.


Ok, so let's go with the current solution to restore status quo, and I'll return to this idea later.



================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFContext.h:25
+  struct SectionData {
+    llvm::once_flag flag;
+    DWARFDataExtractor data;
----------------
clayborg wrote:
> is llvm::once_flag better than std::once_flag? 
Not really, but it's needed because std::once_flag does not work on some more exotic platforms. Elsewhere, it's equivalent to std::once_flag.


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

https://reviews.llvm.org/D62316





More information about the lldb-commits mailing list