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

Commit 76dd38f8 authored by Henri Chataing's avatar Henri Chataing Committed by Automerger Merge Worker
Browse files

Merge "RootCanal: Fix HCI parsing bottleneck" am: 31ebbe2d am: 89903208

parents a3931bec 89903208
Loading
Loading
Loading
Loading
+26 −20
Original line number Original line Diff line number Diff line
@@ -66,6 +66,11 @@ size_t H4DataChannelPacketizer::Send(uint8_t type, const uint8_t* data,


void H4DataChannelPacketizer::OnDataReady(
void H4DataChannelPacketizer::OnDataReady(
   std::shared_ptr<AsyncDataChannel> socket) {
   std::shared_ptr<AsyncDataChannel> socket) {

  // Continue reading from the async data channel as long as bytes
  // are available to read. Otherwise this limits the number of HCI
  // packets parsed to one every 3 ticks.
  for (;;) {
    ssize_t bytes_to_read = h4_parser_.BytesRequested();
    ssize_t bytes_to_read = h4_parser_.BytesRequested();
    std::vector<uint8_t> buffer(bytes_to_read);
    std::vector<uint8_t> buffer(bytes_to_read);


@@ -92,5 +97,6 @@ void H4DataChannelPacketizer::OnDataReady(
    }
    }
    h4_parser_.Consume(buffer.data(), bytes_read);
    h4_parser_.Consume(buffer.data(), bytes_read);
  }
  }
}


}  // namespace rootcanal
}  // namespace rootcanal