From dcb0e687faebb8b8c31f61a0deb8c583125ffc72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 7 Oct 2021 16:28:53 +0200 Subject: [PATCH] [lldb] [ConnectionFileDescriptorPosix] Use a single NativeFile Replace separate read and write NativeFile instances with a single instance shared for reading and writing. There is no clear indication why two instances were used in the first place, and replacing them with just one does not seem to cause any regressions in tests or manual 'process connect file://...'. Differential Revision: https://reviews.llvm.org/D111314 --- .../Host/posix/ConnectionFileDescriptorPosix.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp b/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp index 2d93e457a699..9a6a5aa835f5 100644 --- a/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp +++ b/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp @@ -85,9 +85,8 @@ ConnectionFileDescriptor::ConnectionFileDescriptor(int fd, bool owns_fd) : Connection(), m_pipe(), m_mutex(), m_shutting_down(false), m_waiting_for_accept(false), m_child_processes_inherit(false) { m_write_sp = - std::make_shared(fd, File::eOpenOptionWriteOnly, owns_fd); - m_read_sp = - std::make_shared(fd, File::eOpenOptionReadOnly, false); + std::make_shared(fd, File::eOpenOptionReadWrite, owns_fd); + m_read_sp = m_write_sp; Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_CONNECTION | LIBLLDB_LOG_OBJECT)); @@ -219,9 +218,8 @@ ConnectionStatus ConnectionFileDescriptor::Connect(llvm::StringRef path, m_write_sp = m_read_sp; } else { m_read_sp = std::make_shared( - fd, File::eOpenOptionReadOnly, false); - m_write_sp = std::make_shared( - fd, File::eOpenOptionWriteOnly, false); + fd, File::eOpenOptionReadWrite, false); + m_write_sp = m_read_sp; } m_uri = std::string(*addr); return eConnectionStatusSuccess; @@ -271,9 +269,8 @@ ConnectionStatus ConnectionFileDescriptor::Connect(llvm::StringRef path, } } m_read_sp = - std::make_shared(fd, File::eOpenOptionReadOnly, true); - m_write_sp = - std::make_shared(fd, File::eOpenOptionWriteOnly, false); + std::make_shared(fd, File::eOpenOptionReadWrite, true); + m_write_sp = m_read_sp; return eConnectionStatusSuccess; } #endif