Snap for 7584485 from e2ca493505cd4e54feebcd5ff9a1ab3a42954963 to sc-release

Change-Id: I284245ee891fb3a1359ee2e6f9619e25bd911b80
diff --git a/src/com/android/providers/calendar/CalendarProviderJobService.java b/src/com/android/providers/calendar/CalendarProviderJobService.java
index bfec48a..908304d 100644
--- a/src/com/android/providers/calendar/CalendarProviderJobService.java
+++ b/src/com/android/providers/calendar/CalendarProviderJobService.java
@@ -29,6 +29,8 @@
     private static final String TAG = CalendarProvider2.TAG;
     static final int JOB_ID = CalendarProviderJobService.class.hashCode();
 
+    private volatile boolean canRun;
+
     @Override
     public boolean onStartJob(JobParameters params) {
         if (!params.isExpeditedJob()) {
@@ -44,6 +46,7 @@
             return false;
         }
 
+        canRun = true;
         final CalendarProvider2 provider = (CalendarProvider2) cprovider;
 
         new Thread(() -> {
@@ -58,6 +61,9 @@
                 if (Log.isLoggable(TAG, Log.DEBUG)) {
                     Log.d(TAG, "Next alarm set.");
                 }
+                if (!canRun) {
+                    break;
+                }
                 params.completeWork(jwi);
             }
         }).start();
@@ -70,6 +76,7 @@
         Slog.wtf(TAG, "CalendarProviderJobService was stopped due to "
                 + JobParameters.getInternalReasonCodeDescription(params.getInternalStopReasonCode())
                 + "(" + params.getStopReason() + ")");
+        canRun = false;
         return true;
     }
 }