================ @@ -83,24 +95,69 @@ class JSONTransport { return WriteImpl(message); } - /// Reads the next message from the input stream. + /// Registers the transport with the MainLoop. template <typename T> - llvm::Expected<T> Read(const std::chrono::microseconds &timeout) { - llvm::Expected<std::string> message = ReadImpl(timeout); - if (!message) - return message.takeError(); - return llvm::json::parse<T>(/*JSON=*/*message); + llvm::Expected<ReadHandleUP> RegisterReadObject(MainLoopBase &loop, + Callback<T> callback) { + Status error; + ReadHandleUP handle = loop.RegisterReadObject( + m_input, + [&](MainLoopBase &loop) { ---------------- ashgti wrote:
Done. I removed the `[&]` usage and copied the values by value. https://github.com/llvm/llvm-project/pull/152367 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits