ART: Scope runnable part of JitCompileTask

Do not run ProfileSaver code under mutator lock.

Bug: 137339043
Test: m
Change-Id: Idfdb6992946dfc5186d2a047b80947b40224c6e3
diff --git a/runtime/jit/jit.cc b/runtime/jit/jit.cc
index 153761c..4430c1b 100644
--- a/runtime/jit/jit.cc
+++ b/runtime/jit/jit.cc
@@ -591,25 +591,27 @@
   }
 
   void Run(Thread* self) override {
-    ScopedObjectAccess soa(self);
-    switch (kind_) {
-      case TaskKind::kPreCompile:
-      case TaskKind::kCompile:
-      case TaskKind::kCompileBaseline:
-      case TaskKind::kCompileOsr: {
-        Runtime::Current()->GetJit()->CompileMethod(
-            method_,
-            self,
-            /* baseline= */ (kind_ == TaskKind::kCompileBaseline),
-            /* osr= */ (kind_ == TaskKind::kCompileOsr),
-            /* prejit= */ (kind_ == TaskKind::kPreCompile));
-        break;
-      }
-      case TaskKind::kAllocateProfile: {
-        if (ProfilingInfo::Create(self, method_, /* retry_allocation= */ true)) {
-          VLOG(jit) << "Start profiling " << ArtMethod::PrettyMethod(method_);
+    {
+      ScopedObjectAccess soa(self);
+      switch (kind_) {
+        case TaskKind::kPreCompile:
+        case TaskKind::kCompile:
+        case TaskKind::kCompileBaseline:
+        case TaskKind::kCompileOsr: {
+          Runtime::Current()->GetJit()->CompileMethod(
+              method_,
+              self,
+              /* baseline= */ (kind_ == TaskKind::kCompileBaseline),
+              /* osr= */ (kind_ == TaskKind::kCompileOsr),
+              /* prejit= */ (kind_ == TaskKind::kPreCompile));
+          break;
         }
-        break;
+        case TaskKind::kAllocateProfile: {
+          if (ProfilingInfo::Create(self, method_, /* retry_allocation= */ true)) {
+            VLOG(jit) << "Start profiling " << ArtMethod::PrettyMethod(method_);
+          }
+          break;
+        }
       }
     }
     ProfileSaver::NotifyJitActivity();