Loading native/glue/threaded_app/threaded_app.c +14 −12 Original line number Diff line number Diff line Loading @@ -29,18 +29,6 @@ #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "threaded_app", __VA_ARGS__)) #define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "threaded_app", __VA_ARGS__)) void android_app_destroy(struct android_app* android_app) { LOGI("android_app_destroy!"); pthread_mutex_lock(&android_app->mutex); if (android_app->inputQueue != NULL) { AInputQueue_detachLooper(android_app->inputQueue); } android_app->destroyed = 1; pthread_cond_broadcast(&android_app->cond); pthread_mutex_unlock(&android_app->mutex); // Can't touch android_app object after this. } int8_t android_app_read_cmd(struct android_app* android_app) { int8_t cmd; if (read(android_app->msgread, &cmd, sizeof(cmd)) == sizeof(cmd)) { Loading Loading @@ -97,6 +85,18 @@ int32_t android_app_exec_cmd(struct android_app* android_app, int8_t cmd) { return android_app->destroyRequested ? 0 : 1; } static void android_app_destroy(struct android_app* android_app) { LOGI("android_app_destroy!"); pthread_mutex_lock(&android_app->mutex); if (android_app->inputQueue != NULL) { AInputQueue_detachLooper(android_app->inputQueue); } android_app->destroyed = 1; pthread_cond_broadcast(&android_app->cond); pthread_mutex_unlock(&android_app->mutex); // Can't touch android_app object after this. } static void* android_app_entry(void* param) { struct android_app* android_app = (struct android_app*)param; Loading @@ -110,6 +110,8 @@ static void* android_app_entry(void* param) { pthread_mutex_unlock(&android_app->mutex); android_main(android_app); android_app_destroy(android_app); return NULL; } Loading native/include/android_glue/threaded_app.h +0 −6 Original line number Diff line number Diff line Loading @@ -143,12 +143,6 @@ enum { APP_CMD_DESTROY, }; /** * Call if android_app->destroyRequested is non-zero. Upon return, the * android_app structure is no longer valid and must not be touched. */ void android_app_destroy(struct android_app* android_app); /** * Call when ALooper_pollAll() returns LOOPER_ID_MAIN, reading the next * app command message. Loading Loading
native/glue/threaded_app/threaded_app.c +14 −12 Original line number Diff line number Diff line Loading @@ -29,18 +29,6 @@ #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "threaded_app", __VA_ARGS__)) #define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "threaded_app", __VA_ARGS__)) void android_app_destroy(struct android_app* android_app) { LOGI("android_app_destroy!"); pthread_mutex_lock(&android_app->mutex); if (android_app->inputQueue != NULL) { AInputQueue_detachLooper(android_app->inputQueue); } android_app->destroyed = 1; pthread_cond_broadcast(&android_app->cond); pthread_mutex_unlock(&android_app->mutex); // Can't touch android_app object after this. } int8_t android_app_read_cmd(struct android_app* android_app) { int8_t cmd; if (read(android_app->msgread, &cmd, sizeof(cmd)) == sizeof(cmd)) { Loading Loading @@ -97,6 +85,18 @@ int32_t android_app_exec_cmd(struct android_app* android_app, int8_t cmd) { return android_app->destroyRequested ? 0 : 1; } static void android_app_destroy(struct android_app* android_app) { LOGI("android_app_destroy!"); pthread_mutex_lock(&android_app->mutex); if (android_app->inputQueue != NULL) { AInputQueue_detachLooper(android_app->inputQueue); } android_app->destroyed = 1; pthread_cond_broadcast(&android_app->cond); pthread_mutex_unlock(&android_app->mutex); // Can't touch android_app object after this. } static void* android_app_entry(void* param) { struct android_app* android_app = (struct android_app*)param; Loading @@ -110,6 +110,8 @@ static void* android_app_entry(void* param) { pthread_mutex_unlock(&android_app->mutex); android_main(android_app); android_app_destroy(android_app); return NULL; } Loading
native/include/android_glue/threaded_app.h +0 −6 Original line number Diff line number Diff line Loading @@ -143,12 +143,6 @@ enum { APP_CMD_DESTROY, }; /** * Call if android_app->destroyRequested is non-zero. Upon return, the * android_app structure is no longer valid and must not be touched. */ void android_app_destroy(struct android_app* android_app); /** * Call when ALooper_pollAll() returns LOOPER_ID_MAIN, reading the next * app command message. Loading