================ @@ -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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits