Author: cbieneman Date: Tue Apr 18 20:00:16 2017 New Revision: 300636 URL: http://llvm.org/viewvc/llvm-project?rev=300636&view=rev Log: ifdefing out the signal handling code on Windows
*fingers crossed* This might fix the Window bots, but I really don't know... Modified: lldb/trunk/source/Host/common/MainLoop.cpp Modified: lldb/trunk/source/Host/common/MainLoop.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/MainLoop.cpp?rev=300636&r1=300635&r2=300636&view=diff ============================================================================== --- lldb/trunk/source/Host/common/MainLoop.cpp (original) +++ lldb/trunk/source/Host/common/MainLoop.cpp Tue Apr 18 20:00:16 2017 @@ -32,7 +32,10 @@ #define POLL poll #endif -#if !HAVE_PPOLL && !HAVE_SYS_EVENT_H +#if SIGNAL_POLLING_UNSUPPORTED +#ifdef LLVM_ON_WIN32 +typedef int sigset_t; +#endif int ppoll(struct pollfd *fds, size_t nfds, const struct timespec *timeout_ts, const sigset_t *) { @@ -137,6 +140,10 @@ void MainLoop::UnregisterReadObject(IOOb } void MainLoop::UnregisterSignal(int signo) { +#if SIGNAL_POLLING_UNSUPPORTED + error.SetErrorString("Signal polling is not supported on this platform."); + return nullptr; +#else // We undo the actions of RegisterSignal on a best-effort basis. auto it = m_signals.find(signo); assert(it != m_signals.end()); @@ -150,6 +157,7 @@ void MainLoop::UnregisterSignal(int sign nullptr); m_signals.erase(it); +#endif } Error MainLoop::Run() { @@ -198,9 +206,17 @@ Error MainLoop::Run() { #else read_fds.clear(); + +#if !SIGNAL_POLLING_UNSUPPORTED if (int ret = pthread_sigmask(SIG_SETMASK, nullptr, &sigmask)) return Error("pthread_sigmask failed with error %d\n", ret); + for (const auto &sig : m_signals) { + signals.push_back(sig.first); + sigdelset(&sigmask, sig.first); + } +#endif + for (const auto &fd : m_read_fds) { struct pollfd pfd; pfd.fd = fd.first; @@ -209,11 +225,6 @@ Error MainLoop::Run() { read_fds.push_back(pfd); } - for (const auto &sig : m_signals) { - signals.push_back(sig.first); - sigdelset(&sigmask, sig.first); - } - if (ppoll(read_fds.data(), read_fds.size(), nullptr, &sigmask) == -1 && errno != EINTR) return Error(errno, eErrorTypePOSIX); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits