diff options
author | Service qcabuildsw <qcabuildsw@localhost> | 2016-06-24 02:35:30 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-06-24 02:35:30 -0700 |
commit | d82caa8696c54df8e422f9b79dda7c004b9a7282 (patch) | |
tree | 93beababf536c52e955aeb1700d25e989420a277 | |
parent | 120a416c14790aad3db9e265f1fafded64c42acf (diff) | |
parent | a32afeb7d0eb32acdea60a7312ce856b8695c757 (diff) | |
download | android_external_wpa_supplicant_8-d82caa8696c54df8e422f9b79dda7c004b9a7282.tar.gz android_external_wpa_supplicant_8-d82caa8696c54df8e422f9b79dda7c004b9a7282.tar.bz2 android_external_wpa_supplicant_8-d82caa8696c54df8e422f9b79dda7c004b9a7282.zip |
Merge "eap_proxy: postpone qmi init until demonize" into wlan-service.lnx.1.0-dev.1.0
-rw-r--r-- | src/eap_peer/eap_proxy_qmi.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/eap_peer/eap_proxy_qmi.c b/src/eap_peer/eap_proxy_qmi.c index 49ecc4df..6198baa0 100644 --- a/src/eap_peer/eap_proxy_qmi.c +++ b/src/eap_peer/eap_proxy_qmi.c @@ -716,6 +716,20 @@ int eap_auth_end_eap_session(qmi_client_type qmi_auth_svc_client_ptr) return 0; } +static void eap_proxy_schedule_thread(void *eloop_ctx, void *timeout_ctx) +{ + struct eap_proxy_sm *eap_proxy = eloop_ctx; + pthread_attr_t attr; + int ret = -1; + + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + ret = pthread_create(&eap_proxy->thread_id, &attr, eap_proxy_post_init, eap_proxy); + if(ret < 0) + wpa_printf(MSG_ERROR, "eap_proxy: starting thread is failed %d\n", ret); +} + + struct eap_proxy_sm * eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb, void *msg_ctx) @@ -724,8 +738,6 @@ eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb, int qmiRetCode; struct eap_proxy_sm *eap_proxy; qmi_idl_service_object_type qmi_client_service_obj; - pthread_attr_t attr; - int ret = -1; eap_proxy = os_malloc(sizeof(struct eap_proxy_sm)); if (NULL == eap_proxy) { @@ -751,11 +763,7 @@ eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb, * parent process that created the qmi client context. */ - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - ret = pthread_create(&eap_proxy->thread_id, &attr, eap_proxy_post_init, eap_proxy); - if(ret < 0) - wpa_printf(MSG_ERROR, "eap_proxy: starting thread is failed %d\n", ret); + eloop_register_timeout(0, 0, eap_proxy_schedule_thread, eap_proxy, NULL); return eap_proxy; } |