diff options
Diffstat (limited to 'www/iridium/files/patch-base_profiler_stack__copier__signal.cc')
-rw-r--r-- | www/iridium/files/patch-base_profiler_stack__copier__signal.cc | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/www/iridium/files/patch-base_profiler_stack__copier__signal.cc b/www/iridium/files/patch-base_profiler_stack__copier__signal.cc deleted file mode 100644 index b9e757471f17..000000000000 --- a/www/iridium/files/patch-base_profiler_stack__copier__signal.cc +++ /dev/null @@ -1,63 +0,0 @@ ---- base/profiler/stack_copier_signal.cc.orig 2020-04-10 00:33:01 UTC -+++ base/profiler/stack_copier_signal.cc -@@ -4,7 +4,14 @@ - - #include "base/profiler/stack_copier_signal.h" - -+#if defined(OS_LINUX) - #include <linux/futex.h> -+#include <syscall.h> -+#elif defined(OS_FREEBSD) -+#include <sys/types.h> -+#include <sys/thr.h> -+#include <sys/umtx.h> -+#endif - #include <signal.h> - #include <sys/ucontext.h> - #include <syscall.h> -@@ -35,8 +42,13 @@ class AsyncSafeWaitableEvent { - // for a pthread mutex. So, also check the condition. - while (true) { - int res = -+#if defined(OS_LINUX) - syscall(SYS_futex, futex_int_ptr(), FUTEX_WAIT | FUTEX_PRIVATE_FLAG, - 0, nullptr, nullptr, 0); -+#elif defined(OS_FREEBSD) -+ _umtx_op(futex_int_ptr(), UMTX_OP_WAIT_UINT_PRIVATE, 0, nullptr, -+ nullptr); -+#endif - if (futex_.load(std::memory_order_acquire) != 0) - return true; - if (res != 0) -@@ -46,8 +58,12 @@ class AsyncSafeWaitableEvent { - - void Signal() { - futex_.store(1, std::memory_order_release); -+#if defined(OS_LINUX) - syscall(SYS_futex, futex_int_ptr(), FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1, - nullptr, nullptr, 0); -+#elif defined(OS_FREEBSD) -+ _umtx_op(futex_int_ptr(), UMTX_OP_WAKE_PRIVATE, 1, nullptr, nullptr); -+#endif - } - - private: -@@ -214,11 +230,18 @@ bool StackCopierSignal::CopyStack(StackBuffer* stack_b - if (!scoped_sigaction.succeeded()) - return false; - -+#if defined(OS_LINUX) - if (syscall(SYS_tgkill, getpid(), thread_delegate_->GetThreadId(), - SIGURG) != 0) { - NOTREACHED(); - return false; - } -+#elif defined(OS_FREEBSD) -+ if (thr_kill2(getpid(), thread_delegate_->GetThreadId(), SIGURG) != 0) { -+ NOTREACHED(); -+ return false; -+ } -+#endif - bool finished_waiting = wait_event.Wait(); - TRACE_EVENT_END0(TRACE_DISABLED_BY_DEFAULT("cpu_profiler.debug"), - "StackCopierSignal copy stack"); |