fix quic
This commit is contained in:
parent
c3e93466b1
commit
e54f898c7d
@ -116,13 +116,18 @@ actor SDLQUICReader {
|
|||||||
|
|
||||||
func start() {
|
func start() {
|
||||||
self.readTask = Task {
|
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 {
|
do {
|
||||||
while !Task.isCancelled {
|
while !Task.isCancelled {
|
||||||
let (isComplete, data) = try await self.readOnce()
|
let (isComplete, data) = try await self.readOnce()
|
||||||
if let data, !data.isEmpty {
|
if let data, !data.isEmpty {
|
||||||
buffer.writeBytes(data)
|
buffer.writeBytes(data)
|
||||||
let frames = try parseFrames(buffer: &buffer)
|
let frames = try parseFrames(buffer: &buffer)
|
||||||
|
if buffer.readerIndex > threshold {
|
||||||
|
buffer.discardReadBytes()
|
||||||
|
}
|
||||||
|
|
||||||
for frame in frames {
|
for frame in frames {
|
||||||
if let message = SDLQUICCodec.decode(frame: frame) {
|
if let message = SDLQUICCodec.decode(frame: frame) {
|
||||||
self.messageCont.yield(message)
|
self.messageCont.yield(message)
|
||||||
@ -167,10 +172,6 @@ actor SDLQUICReader {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if buffer.readerIndex > maxBufferSize / 10 * 6 {
|
|
||||||
buffer.discardReadBytes()
|
|
||||||
}
|
|
||||||
|
|
||||||
return frames
|
return frames
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user