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

Commit d82efd3a authored by Chris Manton's avatar Chris Manton Committed by android-build-merger
Browse files

Merge "Save callbacks in thread protected space" am: 74fd0647 am: d915a239

am: 8705db98

Change-Id: I6eca556f1e628d11776a2be0aab16bd27944ed08
parents c89180a9 8705db98
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -358,7 +358,11 @@ void L2cap::impl::RegisterService(l2cap::Psm psm, ConnectionOpenCallback on_open
  ASSERT(psm_to_register_complete_map_.find(psm) == psm_to_register_complete_map_.end());
  ASSERT(psm_to_register_complete_map_.find(psm) == psm_to_register_complete_map_.end());
  ASSERT(psm_to_on_open_map_.find(psm) == psm_to_on_open_map_.end());
  ASSERT(psm_to_on_open_map_.find(psm) == psm_to_on_open_map_.end());


  {
    std::unique_lock<std::mutex> lock(mutex_);
    psm_to_on_open_map_[psm] = on_open;
    psm_to_on_open_map_[psm] = on_open;
    psm_to_register_complete_map_[psm] = std::move(completed);
  }


  psm_to_service_interface_map_.emplace(
  psm_to_service_interface_map_.emplace(
      psm, std::make_shared<ServiceInterface>(
      psm, std::make_shared<ServiceInterface>(
@@ -434,7 +438,8 @@ bool L2cap::impl::Write(ConnectionInterfaceDescriptor cid, std::unique_ptr<packe


void L2cap::RegisterService(uint16_t raw_psm, ConnectionOpenCallback on_open, std::promise<void> completed) {
void L2cap::RegisterService(uint16_t raw_psm, ConnectionOpenCallback on_open, std::promise<void> completed) {
  l2cap::Psm psm{raw_psm};
  l2cap::Psm psm{raw_psm};
  pimpl_->RegisterService(psm, on_open, std::move(completed));
  GetHandler()->Post(common::BindOnce(&L2cap::impl::RegisterService, common::Unretained(pimpl_.get()), psm, on_open,
                                      std::move(completed)));
}
}


void L2cap::UnregisterService(uint16_t raw_psm) {
void L2cap::UnregisterService(uint16_t raw_psm) {
@@ -447,7 +452,8 @@ void L2cap::CreateConnection(uint16_t raw_psm, const std::string address_string,
  hci::Address address;
  hci::Address address;
  hci::Address::FromString(address_string, address);
  hci::Address::FromString(address_string, address);


  return pimpl_->CreateConnection(psm, address, std::move(completed));
  GetHandler()->Post(common::BindOnce(&L2cap::impl::CreateConnection, common::Unretained(pimpl_.get()), psm, address,
                                      std::move(completed)));
}
}


void L2cap::CloseConnection(uint16_t raw_cid) {
void L2cap::CloseConnection(uint16_t raw_cid) {