mgorny updated this revision to Diff 191553.
mgorny added a comment.

Got rid of `close()` and `fclose()` wrapping, for now.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59606/new/

https://reviews.llvm.org/D59606

Files:
  lldb/source/Host/common/Socket.cpp
  lldb/source/Host/common/TCPSocket.cpp
  lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
  lldb/source/Host/posix/DomainSocket.cpp
  lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
  lldb/tools/darwin-debug/darwin-debug.cpp
  lldb/tools/debugserver/source/RNBSocket.cpp
  lldb/tools/debugserver/source/debugserver.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===================================================================
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -41,6 +41,7 @@
 #include <thread>
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Errno.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/raw_ostream.h"
 
@@ -90,7 +91,8 @@
     } else {
       listen(sockfd, 5);
       socklen_t clilen = sizeof(cli_addr);
-      newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &clilen);
+      newsockfd = llvm::sys::RetryAfterSignal(-1, accept,
+          sockfd, (struct sockaddr *)&cli_addr, &clilen);
       if (newsockfd < 0)
         if (g_vsc.log)
           *g_vsc.log << "error: accept (" << strerror(errno) << ")"
Index: lldb/tools/debugserver/source/debugserver.cpp
===================================================================
--- lldb/tools/debugserver/source/debugserver.cpp
+++ lldb/tools/debugserver/source/debugserver.cpp
@@ -681,8 +681,9 @@
     saddr_un.sun_path[sizeof(saddr_un.sun_path) - 1] = '\0';
     saddr_un.sun_len = SUN_LEN(&saddr_un);
 
-    if (::connect(s, (struct sockaddr *)&saddr_un,
-                  static_cast<socklen_t>(SUN_LEN(&saddr_un))) < 0) {
+    if (llvm::sys::RetryAfterSignal(-1, ::connect, s,
+          (struct sockaddr *)&saddr_un,
+          static_cast<socklen_t>(SUN_LEN(&saddr_un))) < 0) {
       perror("error: connect (socket, &saddr_un, saddr_un_len)");
       exit(1);
     }
Index: lldb/tools/debugserver/source/RNBSocket.cpp
===================================================================
--- lldb/tools/debugserver/source/RNBSocket.cpp
+++ lldb/tools/debugserver/source/RNBSocket.cpp
@@ -25,6 +25,7 @@
 #include <vector>
 
 #include "lldb/Host/SocketAddress.h"
+#include "llvm/Support/Errno.h"
 
 #ifdef WITH_LOCKDOWN
 #include "lockdown.h"
@@ -169,7 +170,8 @@
       lldb_private::SocketAddress &addr_in = socket_pair->second;
       lldb_private::SocketAddress accept_addr;
       socklen_t sa_len = accept_addr.GetMaxLength();
-      m_fd = ::accept(sock_fd, &accept_addr.sockaddr(), &sa_len);
+      m_fd = llvm::sys::RetryAfterSignal(-1, ::accept,
+          sock_fd, &accept_addr.sockaddr(), &sa_len);
 
       if (m_fd == -1) {
         err.SetError(errno, DNBError::POSIX);
@@ -230,7 +232,8 @@
 
     address.SetPort(port);
 
-    if (-1 == ::connect(m_fd, &address.sockaddr(), address.GetLength())) {
+    if (-1 == llvm::sys::RetryAfterSignal(-1, ::connect, m_fd,
+          &address.sockaddr(), address.GetLength())) {
       Disconnect(false);
       continue;
     }
Index: lldb/tools/darwin-debug/darwin-debug.cpp
===================================================================
--- lldb/tools/darwin-debug/darwin-debug.cpp
+++ lldb/tools/darwin-debug/darwin-debug.cpp
@@ -39,6 +39,8 @@
 
 #include <string>
 
+#include "llvm/Support/Errno.h"
+
 #ifndef _POSIX_SPAWN_DISABLE_ASLR
 #define _POSIX_SPAWN_DISABLE_ASLR 0x0100
 #endif
@@ -287,7 +289,8 @@
   saddr_un.sun_path[sizeof(saddr_un.sun_path) - 1] = '\0';
   saddr_un.sun_len = SUN_LEN(&saddr_un);
 
-  if (::connect(s, (struct sockaddr *)&saddr_un, SUN_LEN(&saddr_un)) < 0) {
+  if (llvm::sys::RetryAfterSignal(-1, ::connect, s,
+        (struct sockaddr *)&saddr_un, SUN_LEN(&saddr_un)) < 0) {
     perror("error: connect (socket, &saddr_un, saddr_un_len)");
     exit(1);
   }
Index: lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
===================================================================
--- lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
+++ lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
@@ -21,6 +21,7 @@
 #include "lldb/Utility/Stream.h"
 
 #include "llvm/Support/ConvertUTF.h"
+#include "llvm/Support/Errno.h"
 
 #include <stdio.h>
 
@@ -39,7 +40,7 @@
 
 void PythonObject::Dump(Stream &strm) const {
   if (m_py_obj) {
-    FILE *file = ::tmpfile();
+    FILE *file = llvm::sys::RetryAfterSignal(nullptr, ::tmpfile);
     if (file) {
       ::PyObject_Print(m_py_obj, file, 0);
       const long length = ftell(file);
@@ -47,7 +48,8 @@
         ::rewind(file);
         std::vector<char> file_contents(length, '\0');
         const size_t length_read =
-            ::fread(file_contents.data(), 1, file_contents.size(), file);
+            llvm::sys::RetryAfterSignal(0, ::fread,
+                file_contents.data(), 1, file_contents.size(), file);
         if (length_read > 0)
           strm.Write(file_contents.data(), length_read);
       }
Index: lldb/source/Host/posix/DomainSocket.cpp
===================================================================
--- lldb/source/Host/posix/DomainSocket.cpp
+++ lldb/source/Host/posix/DomainSocket.cpp
@@ -8,6 +8,7 @@
 
 #include "lldb/Host/posix/DomainSocket.h"
 
+#include "llvm/Support/Errno.h"
 #include "llvm/Support/FileSystem.h"
 
 #include <stddef.h>
@@ -81,8 +82,8 @@
   m_socket = CreateSocket(kDomain, kType, 0, m_child_processes_inherit, error);
   if (error.Fail())
     return error;
-  if (::connect(GetNativeSocket(), (struct sockaddr *)&saddr_un, saddr_un_len) <
-      0)
+  if (llvm::sys::RetryAfterSignal(-1, ::connect, GetNativeSocket(),
+        (struct sockaddr *)&saddr_un, saddr_un_len) < 0)
     SetLastError(error);
 
   return error;
Index: lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
===================================================================
--- lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
+++ lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
@@ -252,8 +252,10 @@
         ::tcgetattr(fd, &options);
 
         // Set port speed to maximum
-        ::cfsetospeed(&options, B115200);
-        ::cfsetispeed(&options, B115200);
+        llvm::sys::RetryAfterSignal(-1, ::cfsetospeed,
+            &options, B115200);
+        llvm::sys::RetryAfterSignal(-1, ::cfsetispeed,
+            &options, B115200);
 
         // Raw input, disable echo and signals
         options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
Index: lldb/source/Host/common/TCPSocket.cpp
===================================================================
--- lldb/source/Host/common/TCPSocket.cpp
+++ lldb/source/Host/common/TCPSocket.cpp
@@ -17,6 +17,7 @@
 #include "lldb/Utility/Log.h"
 
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Errno.h"
 #include "llvm/Support/raw_ostream.h"
 
 #ifndef LLDB_DISABLE_POSIX
@@ -150,8 +151,8 @@
 
     address.SetPort(port);
 
-    if (-1 == ::connect(GetNativeSocket(), &address.sockaddr(),
-                        address.GetLength())) {
+    if (-1 == llvm::sys::RetryAfterSignal(-1, ::connect,
+          GetNativeSocket(), &address.sockaddr(), address.GetLength())) {
       CLOSE_SOCKET(GetNativeSocket());
       continue;
     }
Index: lldb/source/Host/common/Socket.cpp
===================================================================
--- lldb/source/Host/common/Socket.cpp
+++ lldb/source/Host/common/Socket.cpp
@@ -18,6 +18,7 @@
 #include "lldb/Utility/RegularExpression.h"
 
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Errno.h"
 
 #ifndef LLDB_DISABLE_POSIX
 #include "lldb/Host/posix/DomainSocket.h"
@@ -450,9 +451,11 @@
   if (!child_processes_inherit) {
     flags |= SOCK_CLOEXEC;
   }
-  NativeSocket fd = ::accept4(sockfd, addr, addrlen, flags);
+  NativeSocket fd = llvm::sys::RetryAfterSignal(-1, ::accept4,
+      sockfd, addr, addrlen, flags);
 #else
-  NativeSocket fd = ::accept(sockfd, addr, addrlen);
+  NativeSocket fd = llvm::sys::RetryAfterSignal(-1, ::accept,
+      sockfd, addr, addrlen);
 #endif
   if (fd == kInvalidSocketValue)
     SetLastError(error);
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to