[all-commits] [llvm/llvm-project] 50949e: [lldb] Expose the Target API mutex through the SB ...
Jonas Devlieghere via All-commits
all-commits at lists.llvm.org
Mon Mar 31 08:20:03 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 50949ebf523cc09cc911a12691fb79b6ac97102a
https://github.com/llvm/llvm-project/commit/50949ebf523cc09cc911a12691fb79b6ac97102a
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-03-31 (Mon, 31 Mar 2025)
Changed paths:
A lldb/bindings/interface/SBMutexExtensions.i
M lldb/bindings/interfaces.swig
M lldb/include/lldb/API/LLDB.h
M lldb/include/lldb/API/SBDefines.h
A lldb/include/lldb/API/SBMutex.h
M lldb/include/lldb/API/SBTarget.h
M lldb/source/API/CMakeLists.txt
A lldb/source/API/SBMutex.cpp
M lldb/source/API/SBTarget.cpp
M lldb/test/API/python_api/target/TestTargetAPI.py
M lldb/unittests/API/CMakeLists.txt
A lldb/unittests/API/SBMutexTest.cpp
Log Message:
-----------
[lldb] Expose the Target API mutex through the SB API (#133295)
Expose u target API mutex through the SB API. This is motivated by
lldb-dap, which is built on top of the SB API and needs a way to execute
a series of SB API calls in an atomic manner (see #131242).
We can solve this problem by either introducing an additional layer of
locking at the DAP level or by exposing the existing locking at the SB
API level. This patch implements the second approach.
This was discussed in an RFC on Discourse [0]. The original
implementation exposed a move-only lock rather than a mutex [1] which
doesn't work well with SWIG 4.0 [2]. This implement the alternative
solution of exposing the mutex rather than the lock. The SBMutex
conforms to the BasicLockable requirement [3] (which is why the methods
are called `lock` and `unlock` rather than Lock and Unlock) so it can be
used as `std::lock_guard<lldb::SBMutex>` and
`std::unique_lock<lldb::SBMutex>`.
[0]: https://discourse.llvm.org/t/rfc-exposing-the-target-api-lock-through-the-sb-api/85215/6
[1]: https://github.com/llvm/llvm-project/pull/131404
[2]: https://discourse.llvm.org/t/rfc-bumping-the-minimum-swig-version-to-4-1-0/85377/9
[3]: https://en.cppreference.com/w/cpp/named_req/BasicLockable
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list