Browse Source

cleanup httprequests

dmuratshin 9 years ago
parent
commit
ad08e04ff6

+ 1 - 1
oxygine/SDL/android/lib/src/org/oxygine/lib/HttpRequests.java

@@ -247,7 +247,7 @@ public class HttpRequests {
     }
 
     static public void release() {
-
+        _handler = null;
     }
 
     static public HttpRequestHolder createRequest(String url, String fname, byte[] post, long handle) {

+ 1 - 1
oxygine/src/DebugActor.cpp

@@ -366,7 +366,7 @@ namespace oxygine
 #ifdef __WIN32__
         PROCESS_MEMORY_COUNTERS_EX pmc;
         GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS*) &pmc, sizeof(pmc));
-        s << "memory=" << pmc.PrivateUsage/ 1024 << "kb ";
+        s << "memory=" << pmc.PrivateUsage / 1024 << "kb ";
 
 #endif
 

+ 4 - 0
oxygine/src/core/android/HttpRequestJavaTask.cpp

@@ -38,6 +38,10 @@ namespace oxygine
         jmethodID jRelease = env->GetStaticMethodID(_jHttpRequestsClass, "release", "()V");
         JNI_NOT_NULL(jRelease);
         env->CallStaticObjectMethod(_jHttpRequestsClass, jRelease);
+
+        env->DeleteGlobalRef(_jHttpRequestsClass);
+        _jHttpRequestsClass = 0;
+        _jCreateRequestMethod = 0;
     }
 
     HttpRequestJavaTask::HttpRequestJavaTask(): _handle(0)

+ 7 - 0
oxygine/src/core/curl/HttpRequestCurlTask.cpp

@@ -76,6 +76,7 @@ namespace oxygine
             _messages.wait();
 
             int still_running = -1;
+
             while (still_running)
             {
                 static int i = 0;
@@ -84,6 +85,8 @@ namespace oxygine
                 ThreadDispatcher::peekMessage tmsg;
                 if (_messages.peek(tmsg, true))
                 {
+                    if (tmsg.msgid == 1)
+                        return 0;
                     curl_multi_add_handle(multi_handle, (CURL*)tmsg.arg1);
                     int q = 0;
                 }
@@ -131,6 +134,7 @@ namespace oxygine
                     }
                 }
             }
+
         }
 
         return 0;
@@ -147,6 +151,9 @@ namespace oxygine
 
     void HttpRequestTask::release()
     {
+        _messages.post(1, 0, 0);
+        pthread_join(_thread, 0);
+
         if (multi_handle)
             curl_multi_cleanup(multi_handle);
         multi_handle = 0;