mgorny created this revision.
mgorny added reviewers: labath, teemperor, krytarowski, emaste.
mgorny requested review of this revision.

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://...'.


https://reviews.llvm.org/D111314

Files:
  lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp


Index: lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
===================================================================
--- lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
+++ lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
@@ -85,9 +85,8 @@
     : 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<NativeFile>(fd, File::eOpenOptionWriteOnly, owns_fd);
-  m_read_sp =
-      std::make_shared<NativeFile>(fd, File::eOpenOptionReadOnly, false);
+      std::make_shared<NativeFile>(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 @@
             m_write_sp = m_read_sp;
           } else {
             m_read_sp = std::make_shared<NativeFile>(
-                fd, File::eOpenOptionReadOnly, false);
-            m_write_sp = std::make_shared<NativeFile>(
-                fd, File::eOpenOptionWriteOnly, false);
+                fd, File::eOpenOptionReadWrite, false);
+            m_write_sp = m_read_sp;
           }
           m_uri = std::string(*addr);
           return eConnectionStatusSuccess;
@@ -259,9 +257,8 @@
         }
       }
       m_read_sp =
-          std::make_shared<NativeFile>(fd, File::eOpenOptionReadOnly, true);
-      m_write_sp =
-          std::make_shared<NativeFile>(fd, File::eOpenOptionWriteOnly, false);
+          std::make_shared<NativeFile>(fd, File::eOpenOptionReadWrite, true);
+      m_write_sp = m_read_sp;
       return eConnectionStatusSuccess;
     }
 #endif


Index: lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
===================================================================
--- lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
+++ lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
@@ -85,9 +85,8 @@
     : 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<NativeFile>(fd, File::eOpenOptionWriteOnly, owns_fd);
-  m_read_sp =
-      std::make_shared<NativeFile>(fd, File::eOpenOptionReadOnly, false);
+      std::make_shared<NativeFile>(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 @@
             m_write_sp = m_read_sp;
           } else {
             m_read_sp = std::make_shared<NativeFile>(
-                fd, File::eOpenOptionReadOnly, false);
-            m_write_sp = std::make_shared<NativeFile>(
-                fd, File::eOpenOptionWriteOnly, false);
+                fd, File::eOpenOptionReadWrite, false);
+            m_write_sp = m_read_sp;
           }
           m_uri = std::string(*addr);
           return eConnectionStatusSuccess;
@@ -259,9 +257,8 @@
         }
       }
       m_read_sp =
-          std::make_shared<NativeFile>(fd, File::eOpenOptionReadOnly, true);
-      m_write_sp =
-          std::make_shared<NativeFile>(fd, File::eOpenOptionWriteOnly, false);
+          std::make_shared<NativeFile>(fd, File::eOpenOptionReadWrite, true);
+      m_write_sp = m_read_sp;
       return eConnectionStatusSuccess;
     }
 #endif
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to