loc_api: Disable code that completely shuts down our connection with the GPS
This avoids a race condition that can crash the BP if the GPS is disabled in settings while it is running. This also fixes a problem with the GPS icon in the status bar not getting removed when the GPS is disabled. BUG: 3005091 Change-Id: I539eef716231cefae3d4d0a8203135da9827b45d Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
parent
5153d56321
commit
9391343952
1 changed files with 14 additions and 1 deletions
|
@ -174,8 +174,18 @@ SIDE EFFECTS
|
|||
N/A
|
||||
|
||||
===========================================================================*/
|
||||
|
||||
// fully shutting down the GPS is temporarily disabled to avoid intermittent BP crash
|
||||
#define DISABLE_CLEANUP 1
|
||||
|
||||
static int loc_eng_init(GpsCallbacks* callbacks)
|
||||
{
|
||||
#if DISABLE_CLEANUP
|
||||
if (loc_eng_data.deferred_action_thread) {
|
||||
// already initialized
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
// Start the LOC api RPC service
|
||||
loc_api_glue_init ();
|
||||
|
||||
|
@ -226,7 +236,6 @@ static int loc_eng_init(GpsCallbacks* callbacks)
|
|||
pthread_mutex_init (&(loc_eng_data.ioctl_data.cb_data_mutex), NULL);
|
||||
pthread_cond_init(&loc_eng_data.ioctl_data.cb_arrived_cond, NULL);
|
||||
|
||||
loc_eng_data.deferred_action_thread = NULL;
|
||||
loc_eng_data.deferred_action_thread = callbacks->create_thread_cb("loc_api",
|
||||
loc_eng_process_deferred_action, NULL);
|
||||
|
||||
|
@ -252,6 +261,9 @@ SIDE EFFECTS
|
|||
===========================================================================*/
|
||||
static void loc_eng_cleanup()
|
||||
{
|
||||
#if DISABLE_CLEANUP
|
||||
return;
|
||||
#else
|
||||
if (loc_eng_data.deferred_action_thread)
|
||||
{
|
||||
/* Terminate deferred action working thread */
|
||||
|
@ -278,6 +290,7 @@ static void loc_eng_cleanup()
|
|||
|
||||
// Do not call this as it can result in the ARM9 crashing if it sends events while we are disabled
|
||||
// loc_apicb_app_deinit();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue