[Lldb-commits] [PATCH] D59606: [lldb] Add missing EINTR handling

Michał Górny via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Mar 21 01:39:16 PDT 2019

mgorny added inline comments.

Comment at: lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp:255-258
+        llvm::sys::RetryAfterSignal(-1, ::cfsetospeed,
+            &options, B115200);
+        llvm::sys::RetryAfterSignal(-1, ::cfsetispeed,
+            &options, B115200);
labath wrote:
> IIUC, these only manipulate the `options` struct, so I don't see how they could fail with EINTR. OTOH, the `tcsetattr` call below is documented to return EINTR at least on NetBSD <http://netbsd.gw.com/cgi-bin/man-cgi?cfsetospeed+3+NetBSD-current>.
Yeah, that's why I covered it, though it looks surprising to me as well. But looking at the code, it can't happen really, so I'll just revert this.

Comment at: lldb/tools/lldb-server/lldb-platform.cpp:319
       // Collect child zombie processes.
-      while (waitpid(-1, nullptr, WNOHANG) > 0)
+      while (llvm::sys::RetryAfterSignal(-1, waitpid,
+            -1, nullptr, WNOHANG) > 0)
labath wrote:
> I don't think this is necessary here with WNOHANG and everything.
Yep, sorry, missed this one.



More information about the lldb-commits mailing list