[Lldb-commits] [lldb] [lldb-dap] Adding support for cancelling a request. (PR #130169)
Adrian Vogelsgesang via lldb-commits
lldb-commits at lists.llvm.org
Thu Mar 6 15:16:33 PST 2025
================
@@ -857,29 +819,112 @@ lldb::SBError DAP::Disconnect(bool terminateDebuggee) {
return error;
}
+template <typename T>
+static std::optional<T> getArgumentsIfRequest(const protocol::Message &pm,
+ llvm::StringLiteral command) {
+ auto *const req = std::get_if<protocol::Request>(&pm);
+ if (!req || req->command != command)
+ return std::nullopt;
+
+ T args;
+ llvm::json::Path::Root root;
+ if (!fromJSON(req->rawArguments, args, root)) {
+ return std::nullopt;
+ }
+
+ return std::move(args);
+}
+
llvm::Error DAP::Loop() {
- auto cleanup = llvm::make_scope_exit([this]() {
- if (output.descriptor)
- output.descriptor->Close();
+ std::deque<protocol::Message> queue;
+ std::condition_variable queue_cv;
+ std::mutex queue_mutex;
+ std::thread queue_reader([&]() {
+ auto cleanup = llvm::make_scope_exit([&]() {
----------------
vogelsgesang wrote:
```suggestion
auto cleanup = llvm::make_scope_exit([&]() {
llvm::set_thread_name(dap.client_name + ".transport_handler");
```
https://github.com/llvm/llvm-project/pull/130169
More information about the lldb-commits
mailing list