[llvm] [orc-rt] Session::OnCallControllerReturnFn, comments. NFC. (PR #210035)

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 16 04:16:42 PDT 2026


https://github.com/lhames created https://github.com/llvm/llvm-project/pull/210035

Rename Session::OnCallHandlerCompleteFn to
Session::OnControllerCallReturnFn and add a comment to clarify its purpose: This callback is used to handle retured values from calls to the controller.

>From f17a0e63c0aaf696c3c4c316e56718135223e8a4 Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Thu, 16 Jul 2026 21:07:05 +1000
Subject: [PATCH] [orc-rt] Session::OnCallControllerReturnFn, comments. NFC.

Rename Session::OnCallHandlerCompleteFn to
Session::OnControllerCallReturnFn and add a comment to clarify its
purpose: This callback is used to handle retured values from calls to
the controller.
---
 orc-rt/include/orc-rt/InProcessControllerAccess.h |  7 ++++---
 orc-rt/include/orc-rt/Session.h                   | 14 ++++++++------
 orc-rt/lib/executor/InProcessControllerAccess.cpp |  6 +++---
 orc-rt/test/unit/SessionTest.cpp                  | 10 +++++-----
 4 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/orc-rt/include/orc-rt/InProcessControllerAccess.h b/orc-rt/include/orc-rt/InProcessControllerAccess.h
index 6ac340f1182a6..afba8e92e5c04 100644
--- a/orc-rt/include/orc-rt/InProcessControllerAccess.h
+++ b/orc-rt/include/orc-rt/InProcessControllerAccess.h
@@ -107,13 +107,13 @@ class InProcessControllerAccess : public Session::ControllerAccess {
 
   void disconnect() override;
 
-  void callController(OnCallHandlerCompleteFn OnComplete, HandlerTag T,
+  void callController(OnControllerCallReturnFn OnComplete, HandlerTag T,
                       WrapperFunctionBuffer ArgBytes) override;
   void sendWrapperResult(uint64_t CallId,
                          WrapperFunctionBuffer ResultBytes) override;
 
 private:
-  uint64_t registerPendingHandler(OnCallHandlerCompleteFn OnComplete);
+  uint64_t registerPendingHandler(OnControllerCallReturnFn OnComplete);
   void doDisconnect();
 
   void callWrapper(uint64_t CallId, void *Fn,
@@ -133,7 +133,8 @@ class InProcessControllerAccess : public Session::ControllerAccess {
   std::mutex M;
   uint64_t NextPendingCall = 0;
 
-  using PendingCallsMap = std::unordered_map<uint64_t, OnCallHandlerCompleteFn>;
+  using PendingCallsMap =
+      std::unordered_map<uint64_t, OnControllerCallReturnFn>;
   PendingCallsMap PendingCalls;
 };
 
diff --git a/orc-rt/include/orc-rt/Session.h b/orc-rt/include/orc-rt/Session.h
index 99b9ec9530b75..5bbf02e0d290d 100644
--- a/orc-rt/include/orc-rt/Session.h
+++ b/orc-rt/include/orc-rt/Session.h
@@ -106,6 +106,10 @@ class Session {
   using OnDetachFn = move_only_function<void()>;
   using OnShutdownFn = move_only_function<void()>;
 
+  /// Return value callback used to return results from callController.
+  using OnControllerCallReturnFn =
+      move_only_function<void(WrapperFunctionBuffer)>;
+
   /// Callback used by the Session to run incoming wrapper-function calls.
   ///
   /// A ManagedCodeTaskGroup token is created for each call to this callback,
@@ -119,8 +123,6 @@ class Session {
       orc_rt_WrapperFunction Fn, WrapperFunctionBuffer ArgBytes)>;
 
   using HandlerTag = void *;
-  using OnCallHandlerCompleteFn =
-      move_only_function<void(WrapperFunctionBuffer)>;
 
   /// Provides access to the controller.
   class ControllerAccess {
@@ -131,7 +133,7 @@ class Session {
 
   protected:
     using HandlerTag = Session::HandlerTag;
-    using OnCallHandlerCompleteFn = Session::OnCallHandlerCompleteFn;
+    using OnControllerCallReturnFn = Session::OnControllerCallReturnFn;
 
     ControllerAccess(Session &S) : S(S) {}
 
@@ -179,7 +181,7 @@ class Session {
     void reportError(Error Err) { S.reportError(std::move(Err)); }
 
     /// Call the handler in the controller associated with the given tag.
-    virtual void callController(OnCallHandlerCompleteFn OnComplete,
+    virtual void callController(OnControllerCallReturnFn OnComplete,
                                 HandlerTag T,
                                 WrapperFunctionBuffer ArgBytes) = 0;
 
@@ -418,7 +420,7 @@ class Session {
   /// This method can be called directly, but is expected to be more commonly
   /// called via WrapperFunction::call using a CallViaSession object (returned
   /// by the callViaSession method).
-  void callController(OnCallHandlerCompleteFn OnComplete, HandlerTag T,
+  void callController(OnControllerCallReturnFn OnComplete, HandlerTag T,
                       WrapperFunctionBuffer ArgBytes) {
     if (auto TmpCA = std::atomic_load(&CA))
       TmpCA->callController(std::move(OnComplete), T, std::move(ArgBytes));
@@ -435,7 +437,7 @@ class Session {
   public:
     CallViaSession(Session &S, HandlerTag T) : S(S), T(T) {}
 
-    void operator()(OnCallHandlerCompleteFn &&HandleResult,
+    void operator()(OnControllerCallReturnFn &&HandleResult,
                     WrapperFunctionBuffer ArgBytes) {
       S.callController(std::move(HandleResult), T, std::move(ArgBytes));
     }
diff --git a/orc-rt/lib/executor/InProcessControllerAccess.cpp b/orc-rt/lib/executor/InProcessControllerAccess.cpp
index adb1644605d35..8e10357824729 100644
--- a/orc-rt/lib/executor/InProcessControllerAccess.cpp
+++ b/orc-rt/lib/executor/InProcessControllerAccess.cpp
@@ -201,7 +201,7 @@ void InProcessControllerAccess::disconnect() {
 }
 
 void InProcessControllerAccess::callController(
-    OnCallHandlerCompleteFn OnComplete, HandlerTag T,
+    OnControllerCallReturnFn OnComplete, HandlerTag T,
     WrapperFunctionBuffer ArgBytes) {
   assert(C && "callController called before connect");
   if (C->EnterMessageScope(C)) {
@@ -223,7 +223,7 @@ void InProcessControllerAccess::sendWrapperResult(
 }
 
 uint64_t InProcessControllerAccess::registerPendingHandler(
-    OnCallHandlerCompleteFn OnComplete) {
+    OnControllerCallReturnFn OnComplete) {
   std::scoped_lock<std::mutex> Lock(M);
   PendingCalls[NextPendingCall] = std::move(OnComplete);
   return NextPendingCall++;
@@ -259,7 +259,7 @@ void InProcessControllerAccess::callWrapperEntry(
 void InProcessControllerAccess::returnJITDispatchResult(
     uint64_t CallId, orc_rt_WrapperFunctionBuffer ResultBytes) {
 
-  OnCallHandlerCompleteFn OnComplete;
+  OnControllerCallReturnFn OnComplete;
   {
     std::scoped_lock<std::mutex> Lock(M);
     auto I = PendingCalls.find(CallId);
diff --git a/orc-rt/test/unit/SessionTest.cpp b/orc-rt/test/unit/SessionTest.cpp
index 525230aa677dd..0adef25f2c571 100644
--- a/orc-rt/test/unit/SessionTest.cpp
+++ b/orc-rt/test/unit/SessionTest.cpp
@@ -130,7 +130,7 @@ class MockControllerAccess : public Session::ControllerAccess {
     notifyDisconnected();
   }
 
-  void callController(OnCallHandlerCompleteFn OnComplete, HandlerTag T,
+  void callController(OnControllerCallReturnFn OnComplete, HandlerTag T,
                       WrapperFunctionBuffer ArgBytes) override {
     // Simulate a call to the controller by running the requested function via
     // the test-supplied Post hook (or inline, if no hook was provided).
@@ -163,7 +163,7 @@ class MockControllerAccess : public Session::ControllerAccess {
   void sendWrapperResult(uint64_t CallId,
                          WrapperFunctionBuffer ResultBytes) override {
     // Respond to a simulated call by the controller.
-    OnCallHandlerCompleteFn OnComplete;
+    OnControllerCallReturnFn OnComplete;
     {
       std::scoped_lock<std::mutex> Lock(M);
       if (Shutdown) {
@@ -192,7 +192,7 @@ class MockControllerAccess : public Session::ControllerAccess {
       ShutdownCV.notify_all();
   }
 
-  void callFromController(OnCallHandlerCompleteFn OnComplete,
+  void callFromController(OnControllerCallReturnFn OnComplete,
                           orc_rt_WrapperFunction Fn,
                           WrapperFunctionBuffer ArgBytes) {
     size_t CId = 0;
@@ -263,7 +263,7 @@ class MockControllerAccess : public Session::ControllerAccess {
   bool Shutdown = false;
   size_t Outstanding = 0;
   size_t CallId = 0;
-  std::unordered_map<size_t, OnCallHandlerCompleteFn> Pending;
+  std::unordered_map<size_t, OnControllerCallReturnFn> Pending;
   std::condition_variable ShutdownCV;
   OnConnectFn OnConnect;
 };
@@ -273,7 +273,7 @@ class CallViaMockControllerAccess {
   CallViaMockControllerAccess(MockControllerAccess &CA,
                               orc_rt_WrapperFunction Fn)
       : CA(CA), Fn(Fn) {}
-  void operator()(Session::OnCallHandlerCompleteFn OnComplete,
+  void operator()(Session::OnControllerCallReturnFn OnComplete,
                   WrapperFunctionBuffer ArgBytes) {
     CA.callFromController(std::move(OnComplete), Fn, std::move(ArgBytes));
   }



More information about the llvm-commits mailing list