[Lldb-commits] [PATCH] D20351: second pass over removal of Mutex and Condition

Saleem Abdulrasool via lldb-commits lldb-commits at lists.llvm.org
Tue May 17 21:56:07 PDT 2016


compnerd created this revision.
compnerd added reviewers: clayborg, zturner.
compnerd added a subscriber: lldb-commits.
compnerd set the repository for this revision to rL LLVM.
Herald added subscribers: kubabrecka, emaste.

A second pass to remove use of Mutex and Condition.  This removes cases where the mutex may be shared outside of the class or may be conditionally locked.  With this patch applied the current remaining uses are limited to uses involving Condition and in the GDBCommunication code path where there is a helper mutex class.  The third class of usage is DenseSet and DenseMap which allow the user to specify the mutex type (this may require a bit more tweak, template parameter is the approach which comes to mind).

The Condition changes will require changing TimeVal to chromo::duration, but we should be able to do that as well.

After this patch, I believe that there are only a handful of instances where we use the `lldb_private::Mutex` (~5) and the associated locations for `Mutex::Locker`.


Repository:
  rL LLVM

http://reviews.llvm.org/D20351

Files:
  include/lldb/Breakpoint/BreakpointList.h
  include/lldb/Breakpoint/BreakpointLocation.h
  include/lldb/Breakpoint/WatchpointList.h
  include/lldb/Core/IOHandler.h
  include/lldb/Core/ModuleList.h
  include/lldb/Host/OptionParser.h
  include/lldb/Interpreter/CommandObject.h
  include/lldb/Symbol/CompactUnwindInfo.h
  include/lldb/Symbol/DWARFCallFrameInfo.h
  include/lldb/Symbol/Symtab.h
  include/lldb/Symbol/TypeSystem.h
  include/lldb/Symbol/UnwindTable.h
  include/lldb/Target/ExecutionContext.h
  include/lldb/Target/Memory.h
  include/lldb/Target/Process.h
  include/lldb/Target/QueueList.h
  include/lldb/Target/StackFrame.h
  include/lldb/Target/StackFrameList.h
  include/lldb/Target/Target.h
  include/lldb/Target/ThreadCollection.h
  include/lldb/Target/ThreadList.h
  include/lldb/Utility/Iterable.h
  source/API/SBAddress.cpp
  source/API/SBBreakpoint.cpp
  source/API/SBBreakpointLocation.cpp
  source/API/SBCommandInterpreter.cpp
  source/API/SBDebugger.cpp
  source/API/SBFrame.cpp
  source/API/SBFunction.cpp
  source/API/SBInstruction.cpp
  source/API/SBProcess.cpp
  source/API/SBSymbol.cpp
  source/API/SBTarget.cpp
  source/API/SBThread.cpp
  source/API/SBValue.cpp
  source/API/SBWatchpoint.cpp
  source/Breakpoint/Breakpoint.cpp
  source/Breakpoint/BreakpointList.cpp
  source/Breakpoint/BreakpointLocation.cpp
  source/Breakpoint/WatchpointList.cpp
  source/Commands/CommandObjectBreakpoint.cpp
  source/Commands/CommandObjectProcess.cpp
  source/Commands/CommandObjectTarget.cpp
  source/Commands/CommandObjectThread.cpp
  source/Commands/CommandObjectWatchpoint.cpp
  source/Core/IOHandler.cpp
  source/Core/ModuleList.cpp
  source/Core/SearchFilter.cpp
  source/Host/common/OptionParser.cpp
  source/Interpreter/Args.cpp
  source/Interpreter/CommandObject.cpp
  source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
  source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
  source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
  source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp
  source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
  source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
  source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
  source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp
  source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
  source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
  source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
  source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp
  source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
  source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
  source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
  source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
  source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
  source/Symbol/ClangExternalASTSourceCommon.cpp
  source/Symbol/CompactUnwindInfo.cpp
  source/Symbol/DWARFCallFrameInfo.cpp
  source/Symbol/Symtab.cpp
  source/Symbol/TypeSystem.cpp
  source/Symbol/UnwindTable.cpp
  source/Target/ExecutionContext.cpp
  source/Target/Language.cpp
  source/Target/Memory.cpp
  source/Target/Process.cpp
  source/Target/QueueList.cpp
  source/Target/StackFrame.cpp
  source/Target/StackFrameList.cpp
  source/Target/Target.cpp
  source/Target/ThreadCollection.cpp
  source/Target/ThreadList.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20351.57559.patch
Type: text/x-patch
Size: 232305 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160518/ff65207c/attachment-0001.bin>


More information about the lldb-commits mailing list