From 5f5c928fa5987d1f5bf19adaad2be626ffc386db Mon Sep 17 00:00:00 2001 From: u0u0 Date: Tue, 25 Jun 2019 20:55:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=20=5FWINDOWS=5F=20=E5=AE=8F=EF=BC=8C?= =?UTF-8?q?=E5=8E=BBpthread=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quick/lib/quick-src/extra/network/CCHTTPRequest.cpp | 9 --------- quick/lib/quick-src/extra/network/CCHTTPRequest.h | 8 -------- .../extra/platform/android/CCHTTPRequestAndroid.cpp | 5 ++--- 3 files changed, 2 insertions(+), 20 deletions(-) diff --git a/quick/lib/quick-src/extra/network/CCHTTPRequest.cpp b/quick/lib/quick-src/extra/network/CCHTTPRequest.cpp index ab6cbcf..46b6a0b 100644 --- a/quick/lib/quick-src/extra/network/CCHTTPRequest.cpp +++ b/quick/lib/quick-src/extra/network/CCHTTPRequest.cpp @@ -566,20 +566,11 @@ void HTTPRequest::cleanup(void) } // curl callback - -#ifdef _WINDOWS_ -DWORD WINAPI HTTPRequest::requestCURL(LPVOID userdata) -{ - static_cast(userdata)->onRequest(); - return 0; -} -#else // _WINDOWS_ void *HTTPRequest::requestCURL(void *userdata) { static_cast(userdata)->onRequest(); return NULL; } -#endif // _WINDOWS_ size_t HTTPRequest::writeDataCURL(void *buffer, size_t size, size_t nmemb, void *userdata) { diff --git a/quick/lib/quick-src/extra/network/CCHTTPRequest.h b/quick/lib/quick-src/extra/network/CCHTTPRequest.h index e19ef6d..bb12d59 100644 --- a/quick/lib/quick-src/extra/network/CCHTTPRequest.h +++ b/quick/lib/quick-src/extra/network/CCHTTPRequest.h @@ -234,19 +234,12 @@ private: int onProgress(double dltotal, double dlnow, double ultotal, double ulnow); // curl callback -#ifdef _WINDOWS_ - static DWORD WINAPI requestCURL(LPVOID userdata); -#else - pthread_t m_thread; static void *requestCURL(void *userdata); -#endif static size_t writeDataCURL(void *buffer, size_t size, size_t nmemb, void *userdata); static size_t writeHeaderCURL(void *buffer, size_t size, size_t nmemb, void *userdata); static int progressCURL(void *userdata, double dltotal, double dlnow, double ultotal, double ulnow); #if (!CC_USE_CURL) - pthread_attr_t m_threadAttr; - bool isNeedBoundary(); void createURLConnectJava(); @@ -271,7 +264,6 @@ private: int getCStrFromJByteArray(jbyteArray jba, JNIEnv* env, char** ppData); char* getCStrFromJString(jstring jstr, JNIEnv* env); #endif - }; NS_CC_EXTRA_END diff --git a/quick/lib/quick-src/extra/platform/android/CCHTTPRequestAndroid.cpp b/quick/lib/quick-src/extra/platform/android/CCHTTPRequestAndroid.cpp index 223edd1..953edd5 100644 --- a/quick/lib/quick-src/extra/platform/android/CCHTTPRequestAndroid.cpp +++ b/quick/lib/quick-src/extra/platform/android/CCHTTPRequestAndroid.cpp @@ -218,8 +218,8 @@ bool HTTPRequest::start(void) addRequestHeaderJava("Cookie", m_cookies, bBoundary); } - pthread_create(&m_thread, NULL, requestCURL, this); - pthread_detach(m_thread); // unjoinable + std::thread th(requestCURL, this); + th.detach();//exit from main thread, auto exit Director::getInstance()->getScheduler()->scheduleUpdate(this, 0, false); // CCLOG("HTTPRequest[0x%04x] - request start", s_id); @@ -579,7 +579,6 @@ void *HTTPRequest::requestCURL(void *userdata) if(jvm->DetachCurrentThread() != JNI_OK) { CCLOG("HTTPRequest - requestCURL DetachCurrentThread fail"); } - pthread_exit((void *)0); return NULL; } -- GitLab