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

Commit 9aeb48bb authored by Chris Manton's avatar Chris Manton Committed by Gerrit Code Review
Browse files

Merge "Add ability to lock stack for dumpsys"

parents 707000d1 24cc6949
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -16,12 +16,13 @@

#define LOG_TAG "bt_shim_storage"

#include "main/shim/dumpsys.h"

#include <unordered_map>

#include "main/shim/dumpsys.h"
#include "main/shim/entry.h"
#include "main/shim/shim.h"

#include "main/shim/stack.h"
#include "shim/dumpsys.h"

namespace {
@@ -53,6 +54,7 @@ void bluetooth::shim::Dump(int fd, const char** args) {
      dumpsys.second(fd);
    }
  }
  bluetooth::shim::Stack::GetInstance()->LockForDumpsys([=]() {
    if (bluetooth::shim::is_gd_stack_started_up()) {
      if (bluetooth::shim::is_gd_dumpsys_module_started()) {
        bluetooth::shim::GetDumpsys()->Dump(fd, args);
@@ -63,4 +65,5 @@ void bluetooth::shim::Dump(int fd, const char** args) {
    } else {
      dprintf(fd, "%s gd stack is enabled but not started\n", kModuleName);
    }
  });
}
+5 −0
Original line number Diff line number Diff line
@@ -317,5 +317,10 @@ bool Stack::IsDumpsysModuleStarted() const {
  return GetStackManager()->IsStarted<Dumpsys>();
}

void Stack::LockForDumpsys(std::function<void()> dumpsys_callback) {
  std::lock_guard<std::recursive_mutex> lock(mutex_);
  dumpsys_callback();
}

}  // namespace shim
}  // namespace bluetooth
+6 −4
Original line number Diff line number Diff line
@@ -16,17 +16,17 @@

#pragma once

#include <functional>
#include <mutex>

#include "main/shim/acl.h"
#include "main/shim/btm.h"
#include "main/shim/link_policy_interface.h"

#include "gd/module.h"
#include "gd/os/handler.h"
#include "gd/os/thread.h"
#include "gd/os/utils.h"
#include "gd/stack_manager.h"
#include "main/shim/acl.h"
#include "main/shim/btm.h"
#include "main/shim/link_policy_interface.h"
#include "src/bridge.rs.h"

// The shim layer implementation on the Gd stack side.
@@ -67,6 +67,8 @@ class Stack {
    return rust_controller_;
  }

  void LockForDumpsys(std::function<void()> dumpsys_callback);

 private:
  mutable std::recursive_mutex mutex_;
  StackManager stack_manager_;