This commit is contained in:
anlicheng 2026-02-20 00:49:02 +08:00
parent c3e93466b1
commit e54f898c7d

View File

@ -116,13 +116,18 @@ actor SDLQUICReader {
func start() {
self.readTask = Task {
var buffer: ByteBuffer = allocator.buffer(capacity: self.maxBufferSize)
var buffer = allocator.buffer(capacity: self.maxBufferSize)
let threshold = self.maxBufferSize / 10 * 6
do {
while !Task.isCancelled {
let (isComplete, data) = try await self.readOnce()
if let data, !data.isEmpty {
buffer.writeBytes(data)
let frames = try parseFrames(buffer: &buffer)
if buffer.readerIndex > threshold {
buffer.discardReadBytes()
}
for frame in frames {
if let message = SDLQUICCodec.decode(frame: frame) {
self.messageCont.yield(message)
@ -167,10 +172,6 @@ actor SDLQUICReader {
}
}
if buffer.readerIndex > maxBufferSize / 10 * 6 {
buffer.discardReadBytes()
}
return frames
}