[Lldb-commits] [PATCH] D59606: [lldb] [WIP/RFC] Add missing retries on EINTR
Pavel Labath via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Mar 21 01:03:53 PDT 2019
labath 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);
----------------
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>.
================
Comment at: lldb/tools/debugserver/source/DNB.cpp:173
const pid_t pid = (pid_t)death_event.ident;
- const pid_t child_pid = waitpid(pid, &status, 0);
+ const pid_t child_pid = llvm::sys::RetryAfterSignal(-1, waitpid,
+ pid, &status, 0);
----------------
You can't use llvm code from debugserver. I am not really sure what `darwin-debug` is, but the same may be true for that as well. If I were you, I'd just leave these two alone.
================
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)
----------------
I don't think this is necessary here with WNOHANG and everything.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59606/new/
https://reviews.llvm.org/D59606
More information about the lldb-commits
mailing list