diff --git a/include/dap/session.h b/include/dap/session.h
index 52be9f2..e11c57e 100644
--- a/include/dap/session.h
+++ b/include/dap/session.h
@@ -199,6 +199,16 @@
                     const std::shared_ptr<Writer>&) = 0;
   inline void bind(const std::shared_ptr<ReaderWriter>&);
 
+
+  // Alternative to bind() for control over which thread the request is processed.
+  // If bindNoThread is used, the user must call OnDataAvailable() whenever data is
+  // ready in the reader pipe. The processing will be done on the calling thread
+  // and a function to handle the request will be returned in some cases, which can
+  // be executed on any thread of user choice.
+  virtual std::function<void()> OnDataAvailable() = 0;
+  virtual void bindNoThread(const std::shared_ptr<dap::Reader>& r,
+                            const std::shared_ptr<dap::Writer>& w) = 0;
+
  protected:
   using RequestSuccessCallback =
       std::function<void(const TypeInfo*, const void*)>;
diff --git a/src/session.cpp b/src/session.cpp
index c8005dd..f95d095 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -52,6 +52,26 @@
     handlers.put(typeinfo, handler);
   }
 
+  void bindNoThread(const std::shared_ptr<dap::Reader>& r,
+                    const std::shared_ptr<dap::Writer>& w) override {
+    if (isBound.exchange(true)) {
+      handlers.error("Session is already bound!");
+      return;
+    }
+    reader = dap::ContentReader(r);
+    writer = dap::ContentWriter(w);
+  }
+
+  std::function<void()> OnDataAvailable() override {
+    auto request = reader.read();
+    if (request.size() > 0) {
+      if (auto payload = processMessage(request)) {
+        return payload;
+      }
+    }
+    return {};
+  }
+
   void bind(const std::shared_ptr<dap::Reader>& r,
             const std::shared_ptr<dap::Writer>& w) override {
     if (isBound.exchange(true)) {
