Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(588)

Unified Diff: runtime/vm/thread_interrupter_macos.cc

Issue 1940883002: Work around a kernel bug on Android. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/thread_interrupter_macos.cc
diff --git a/runtime/vm/thread_interrupter_macos.cc b/runtime/vm/thread_interrupter_macos.cc
index e46dbc7d2a77f19d82e3d873d4d75169e975915b..be1d75af2a0051c2c94f4ced83571b1fd9153cfc 100644
--- a/runtime/vm/thread_interrupter_macos.cc
+++ b/runtime/vm/thread_interrupter_macos.cc
@@ -20,29 +20,27 @@ namespace dart {
DECLARE_FLAG(bool, thread_interrupter);
DECLARE_FLAG(bool, trace_thread_interrupter);
-class ThreadInterrupterMacOS : public AllStatic {
- public:
- static void ThreadInterruptSignalHandler(int signal, siginfo_t* info,
- void* context_) {
- if (signal != SIGPROF) {
- return;
- }
- Thread* thread = Thread::Current();
- if (thread == NULL) {
- return;
- }
- // Extract thread state.
- ucontext_t* context = reinterpret_cast<ucontext_t*>(context_);
- mcontext_t mcontext = context->uc_mcontext;
- InterruptedThreadState its;
- its.pc = SignalHandler::GetProgramCounter(mcontext);
- its.fp = SignalHandler::GetFramePointer(mcontext);
- its.csp = SignalHandler::GetCStackPointer(mcontext);
- its.dsp = SignalHandler::GetDartStackPointer(mcontext);
- its.lr = SignalHandler::GetLinkRegister(mcontext);
- Profiler::SampleThread(thread, its);
+
+static void ThreadInterruptSignalHandler(int signal, siginfo_t* info,
+ void* context_) {
+ if (signal != SIGPROF) {
+ return;
+ }
+ Thread* thread = Thread::Current();
+ if (thread == NULL) {
+ return;
}
-};
+ // Extract thread state.
+ ucontext_t* context = reinterpret_cast<ucontext_t*>(context_);
+ mcontext_t mcontext = context->uc_mcontext;
+ InterruptedThreadState its;
+ its.pc = SignalHandler::GetProgramCounter(mcontext);
+ its.fp = SignalHandler::GetFramePointer(mcontext);
+ its.csp = SignalHandler::GetCStackPointer(mcontext);
+ its.dsp = SignalHandler::GetDartStackPointer(mcontext);
+ its.lr = SignalHandler::GetLinkRegister(mcontext);
+ Profiler::SampleThread(thread, its);
+}
void ThreadInterrupter::InterruptThread(OSThread* thread) {
@@ -55,7 +53,7 @@ void ThreadInterrupter::InterruptThread(OSThread* thread) {
void ThreadInterrupter::InstallSignalHandler() {
- SignalHandler::Install(ThreadInterrupterMacOS::ThreadInterruptSignalHandler);
+ SignalHandler::Install(ThreadInterruptSignalHandler);
}
« runtime/vm/thread_interrupter_android.cc ('K') | « runtime/vm/thread_interrupter_linux.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698