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) {