================ @@ -158,13 +164,24 @@ std::string RunInTerminalDebugAdapterCommChannel::GetLauncherError() { } Expected<std::shared_ptr<FifoFile>> CreateRunInTerminalCommFile() { + int comm_fd; SmallString<256> comm_file; - if (std::error_code EC = sys::fs::getPotentiallyUniqueTempFileName( - "lldb-dap-run-in-terminal-comm", "", comm_file)) + if (std::error_code EC = createNamedPipe("lldb-dap-run-in-terminal-comm", "", + comm_fd, comm_file)) return createStringError(EC, "Error making unique file name for " "runInTerminal communication files"); - - return CreateFifoFile(comm_file.str()); + FILE *cf = fdopen(comm_fd, "r+"); + if (setvbuf(cf, NULL, _IONBF, 0)) + return createStringError(std::error_code(errno, std::generic_category()), + "Error setting unbuffered mode on C FILE"); + // There is no portable way to conjure an ofstream from HANDLE, so use FILE * + // llvm::raw_fd_stream does not support getline() and there is no + // llvm::buffer_istream + + if (cf == NULL) + return createStringError(std::error_code(errno, std::generic_category()), + "Error converting file descriptor to C FILE"); ---------------- SuibianP wrote:
Added. https://github.com/llvm/llvm-project/pull/121269 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits