yiguolei commented on code in PR #47274: URL: https://github.com/apache/doris/pull/47274#discussion_r1924653559
########## be/src/runtime/query_context.h: ########## @@ -75,10 +76,66 @@ const std::string toString(QuerySource query_source); // Some components like DescriptorTbl may be very large // that will slow down each execution of fragments when DeSer them every time. class DescriptorTbl; -class QueryContext { +class QueryContext : public std::enable_shared_from_this<QueryContext> { ENABLE_FACTORY_CREATOR(QueryContext); public: + class QueryTaskController : public TaskController { + ENABLE_FACTORY_CREATOR(QueryTaskController); + + public: + static std::unique_ptr<TaskController> create(QueryContext* query_ctx); + + bool is_cancelled() const override; + Status cancel(const Status& reason, int fragment_id); + Status cancel(const Status& reason) override { return cancel(reason, -1); } + + private: + QueryTaskController(const std::shared_ptr<QueryContext>& query_ctx) + : query_ctx_(query_ctx) {} + + // Gets the shared pointer to the associated query ctx to ensure its + // liveness during the query control operation. + std::shared_ptr<QueryContext> ensure_query_ctx() const { return query_ctx_.lock(); } Review Comment: 写这个方法,似乎没降低任何代码行数啊。。。 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org