-
socketchannel 使用 padding 模式发包时,这个时候包走的低优先级通道。这样处理的话,似乎 channel:request(req1, resp1, padding) -- 1
channel:request(req2, resp2, padding) -- 2 在 1 执行后,唤醒 dispatch 逻辑,这个时候取得了 目前 skynet 里只有 redis 使用了 |
Beta Was this translation helpful? Give feedback.
Answered by
cloudwu
May 12, 2021
Replies: 1 comment 5 replies
-
对的。这里用 lwrite 有问题,不仅仅是 response 乱序的问题。而是 padding 是分次发送的,可能和正常 write 交错。 不过上面的例子反而不会出问题。因为,同一个coroutine 发 request 会等待 response 后才发下一个。 出问题应该是在多 coroutine 交错使用 padding 和无 padding 的情况。 明天我改成用 write 。 |
Beta Was this translation helpful? Give feedback.
5 replies
Answer selected by
t0350
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
对的。这里用 lwrite 有问题,不仅仅是 response 乱序的问题。而是 padding 是分次发送的,可能和正常 write 交错。
不过上面的例子反而不会出问题。因为,同一个coroutine 发 request 会等待 response 后才发下一个。
出问题应该是在多 coroutine 交错使用 padding 和无 padding 的情况。
明天我改成用 write 。