[Lldb-commits] [PATCH] D20278: first pass for removing Mutex for std::{, recursive_}mutex

Saleem Abdulrasool via lldb-commits lldb-commits at lists.llvm.org
Sun May 15 18:10:04 PDT 2016


compnerd created this revision.
compnerd added reviewers: clayborg, zturner.
compnerd added a subscriber: lldb-commits.
Herald added a subscriber: emaste.

This is a pretty straightforward first pass over removing a number of uses of Mutex in favor of std::mutex or std::recursive_mutex.  The problem is that there are interfaces which take `Mutex::Locker &` to lock internal locks.  This patch cleans up most of the easy cases.  The only non-trivial change is in `CommandObjectTarget.cpp`  where a `Mutex::Locker` was split into two.

Although the patch is trivial, the question that I have is whether we should go ahead with this change and if doing it in multiple passes is reasonable.

http://reviews.llvm.org/D20278

Files:
  include/lldb/Breakpoint/BreakpointLocationList.h
  include/lldb/Breakpoint/BreakpointSite.h
  include/lldb/Breakpoint/BreakpointSiteList.h
  include/lldb/Core/Broadcaster.h
  include/lldb/Core/Communication.h
  include/lldb/Core/History.h
  include/lldb/Core/IOHandler.h
  include/lldb/Core/Listener.h
  include/lldb/Core/Module.h
  include/lldb/Core/ModuleSpec.h
  include/lldb/Core/StreamTee.h
  include/lldb/Core/ThreadSafeSTLMap.h
  include/lldb/Core/ThreadSafeValue.h
  include/lldb/Core/ValueObject.h
  include/lldb/DataFormatters/FormatCache.h
  include/lldb/DataFormatters/FormatManager.h
  include/lldb/DataFormatters/FormattersContainer.h
  include/lldb/DataFormatters/TypeCategory.h
  include/lldb/DataFormatters/TypeCategoryMap.h
  include/lldb/Host/Editline.h
  include/lldb/Host/common/NativeBreakpointList.h
  include/lldb/Host/common/NativeProcessProtocol.h
  include/lldb/Host/posix/ConnectionFileDescriptorPosix.h
  include/lldb/Initialization/SystemLifetimeManager.h
  include/lldb/Interpreter/CommandHistory.h
  include/lldb/Symbol/FuncUnwinders.h
  include/lldb/Target/JITLoaderList.h
  include/lldb/Target/Platform.h
  include/lldb/Target/SectionLoadHistory.h
  include/lldb/Target/SectionLoadList.h
  include/lldb/Target/TargetList.h
  include/lldb/Target/Thread.h
  include/lldb/Target/ThreadPlan.h
  include/lldb/Target/Unwind.h
  include/lldb/Utility/SharedCluster.h
  source/API/SBDebugger.cpp
  source/Breakpoint/BreakpointLocationList.cpp
  source/Breakpoint/BreakpointSite.cpp
  source/Breakpoint/BreakpointSiteList.cpp
  source/Commands/CommandObjectTarget.cpp
  source/Core/Broadcaster.cpp
  source/Core/Communication.cpp
  source/Core/Debugger.cpp
  source/Core/IOHandler.cpp
  source/Core/Listener.cpp
  source/Core/Log.cpp
  source/Core/Module.cpp
  source/Core/PluginManager.cpp
  source/Core/Timer.cpp
  source/DataFormatters/FormatCache.cpp
  source/DataFormatters/FormatManager.cpp
  source/DataFormatters/TypeCategory.cpp
  source/DataFormatters/TypeCategoryMap.cpp
  source/Expression/IRExecutionUnit.cpp
  source/Host/common/Editline.cpp
  source/Host/common/NativeBreakpointList.cpp
  source/Host/common/NativeProcessProtocol.cpp
  source/Host/posix/ConnectionFileDescriptorPosix.cpp
  source/Initialization/SystemLifetimeManager.cpp
  source/Interpreter/CommandHistory.cpp
  source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
  source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
  source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
  source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h
  source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
  source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
  source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
  source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
  source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
  source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h
  source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
  source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
  source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
  source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
  source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
  source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp
  source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp
  source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
  source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp
  source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
  source/Plugins/Process/FreeBSD/ProcessFreeBSD.h
  source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
  source/Plugins/Process/Utility/HistoryUnwind.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
  source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
  source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
  source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
  source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
  source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
  source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
  source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h
  source/Symbol/FuncUnwinders.cpp
  source/Symbol/ObjectFile.cpp
  source/Symbol/SymbolVendor.cpp
  source/Target/JITLoaderList.cpp
  source/Target/Platform.cpp
  source/Target/Process.cpp
  source/Target/SectionLoadHistory.cpp
  source/Target/SectionLoadList.cpp
  source/Target/TargetList.cpp
  source/Target/Thread.cpp
  source/Target/ThreadPlan.cpp
  source/Utility/SharingPtr.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20278.57313.patch
Type: text/x-patch
Size: 317199 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160516/3424a91f/attachment-0001.bin>


More information about the lldb-commits mailing list