Merge "Calling close() outside of the main thread breaks stuff."
diff --git a/core/java/android/content/CursorLoader.java b/core/java/android/content/CursorLoader.java
index 50919d5..7af535b 100644
--- a/core/java/android/content/CursorLoader.java
+++ b/core/java/android/content/CursorLoader.java
@@ -50,19 +50,6 @@
 
     Cursor mCursor;
 
-    final static class CloseTask extends AsyncTask<Cursor, Void, Void> {
-        @Override
-        protected Void doInBackground(Cursor... params) {
-            params[0].close();
-            return null;
-        }
-    }
-
-    static void closeAsync(Cursor cursor) {
-        CloseTask closeTask = new CloseTask();
-        closeTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, cursor);
-    }
-
     /* Runs on a worker thread */
     @Override
     public Cursor loadInBackground() {
@@ -90,7 +77,7 @@
         if (isReset()) {
             // An async query came in while the loader is stopped
             if (cursor != null) {
-                closeAsync(cursor);
+                cursor.close();
             }
             return;
         }
@@ -102,7 +89,7 @@
         }
 
         if (oldCursor != null && oldCursor != cursor && !oldCursor.isClosed()) {
-            closeAsync(oldCursor);
+            oldCursor.close();
         }
     }
 
@@ -162,7 +149,7 @@
     @Override
     public void onCanceled(Cursor cursor) {
         if (cursor != null && !cursor.isClosed()) {
-            closeAsync(cursor);
+            cursor.close();
         }
     }
 
@@ -174,7 +161,7 @@
         onStopLoading();
 
         if (mCursor != null && !mCursor.isClosed()) {
-            closeAsync(mCursor);
+            mCursor.close();
         }
         mCursor = null;
     }