AI 143185: am: CL 142930 Adds a straightforward abort() function in addition to interrupt(). Used on the gears C++ side to get rid of the thread leaking introduced with the HttpRequest refactoring.
  Original author: nicolasroard
  Merged from: //branches/cupcake/...

Automated import of CL 143185
diff --git a/core/java/android/webkit/gears/ApacheHttpRequestAndroid.java b/core/java/android/webkit/gears/ApacheHttpRequestAndroid.java
index 0569255..529e666 100644
--- a/core/java/android/webkit/gears/ApacheHttpRequestAndroid.java
+++ b/core/java/android/webkit/gears/ApacheHttpRequestAndroid.java
@@ -1000,12 +1000,23 @@
         return true;
     }
 
+    /**
+     * Called by the main thread to interrupt the child thread.
+     * We do not set mConnectionFailed here as we still need the
+     * ability to receive a null packet for sendPostData().
+     */
+    public synchronized void abort() {
+        if (Config.LOGV) {
+            Log.i(LOG_TAG, "ABORT CALLED");
+        }
+        if (mMethod != null) {
+            mMethod.abort();
+        }
+    }
 
    /**
-     * Interrupt a blocking IO operation. This will cause the child
-     * thread to expediently return from an operation if it was stuck at
-     * the time. Note that this inherently races, and unfortunately
-     * requires the caller to loop.
+     * Interrupt a blocking IO operation and wait for the
+     * thread to complete.
      */
     public synchronized void interrupt() {
         if (Config.LOGV) {