Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2bc451b5 authored by Pankaj Kanwar's avatar Pankaj Kanwar Committed by Android (Google) Code Review
Browse files

Merge "Offload config save functionality to BTIF thread" into mnc-dr1.5-dev

parents dfe15d53 7427167a
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include "osi/include/alarm.h"
#include "osi/include/allocator.h"
#include "btcore/include/bdaddr.h"
#include "btif_common.h"
#include "btif_config.h"
#include "btif_config_transcode.h"
#include "btif_util.h"
@@ -43,7 +44,7 @@ static const char *LEGACY_CONFIG_FILE_PATH = "/data/misc/bluedroid/bt_config.xml
static const period_ms_t CONFIG_SETTLE_PERIOD_MS = 3000;

static void timer_config_save_cb(void *data);
static void btif_config_write(void);
static void btif_config_write(UINT16 event, char *p_param);
static void btif_config_devcache_cleanup(void);

// TODO(zachoverflow): Move these two functions out, because they are too specific for this file
@@ -358,8 +359,11 @@ void btif_config_flush(void) {
  assert(alarm_timer != NULL);

  alarm_cancel(alarm_timer);
  btif_config_write(0, NULL);

  btif_config_write();
  pthread_mutex_lock(&lock);
  config_save(config, CONFIG_FILE_PATH);
  pthread_mutex_unlock(&lock);
}

int btif_config_clear(void){
@@ -383,10 +387,13 @@ int btif_config_clear(void){
}

static void timer_config_save_cb(UNUSED_ATTR void *data) {
  btif_config_write();
  // Moving file I/O to btif context instead of timer callback because
  // it usually takes a lot of time to be completed, introducing
  // delays during A2DP playback causing blips or choppiness.
  btif_transfer_context(btif_config_write, 0, NULL, 0, NULL);
}

static void btif_config_write(void) {
static void btif_config_write(UNUSED_ATTR UINT16 event, UNUSED_ATTR char *p_param) {
  assert(config != NULL);
  assert(alarm_timer != NULL);