[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:10:53 PST 2025
================
@@ -0,0 +1,56 @@
+//===-- SourceRequestHandler.cpp ------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "Protocol.h"
+#include "RequestHandler.h"
+#include "llvm/Support/Error.h"
+
+using namespace lldb_dap;
+using namespace lldb_dap::protocol;
+
+namespace lldb_dap {
+
+// "CancelRequest": {
+// "allOf": [ { "$ref": "#/definitions/Request" }, {
+// "type": "object",
+// "description": "The `cancel` request is used by the client in two
+// situations:\n- to indicate that it is no longer interested in the result
+// produced by a specific request issued earlier\n- to cancel a progress
+// sequence.\nClients should only call this request if the corresponding
+// capability `supportsCancelRequest` is true.\nThis request has a hint
+// characteristic: a debug adapter can only be expected to make a 'best
+// effort' in honoring this request but there are no guarantees.\nThe
+// `cancel` request may return an error if it could not cancel an operation
+// but a client should refrain from presenting this error to end users.\nThe
+// request that got cancelled still needs to send a response back. This can
+// either be a normal result (`success` attribute true) or an error response
+// (`success` attribute false and the `message` set to
+// `cancelled`).\nReturning partial results from a cancelled request is
+// possible but please note that a client has no generic way for detecting
+// that a response is partial or not.\nThe progress that got cancelled still
+// needs to send a `progressEnd` event back.\n A client should not assume
+// that progress just got cancelled after sending the `cancel` request.",
+// "properties": {
+// "command": {
+// "type": "string",
+// "enum": [ "cancel" ]
+// },
+// "arguments": {
+// "$ref": "#/definitions/CancelArguments"
+// }
+// },
+// "required": [ "command" ]
+// }]
+// },
+llvm::Expected<CancelResponseBody>
+CancelRequestHandler::Run(const CancelArguments &arguments) const {
+ /* no-op, simple ack of the request. */
----------------
vogelsgesang wrote:
seems weird... I would have expected that we do something here. Or at least a comment which explains me, why we not don't have to do anything here...
This comment currently explains the "what?" (which is kind of obvious from the code). I would prefer a comment explaining the "why?" (which is much harder to reconstruct by reading the code)
https://github.com/llvm/llvm-project/pull/130169
More information about the lldb-commits
mailing list