Protothreads:常见的错误
协程陷入死循环,其它协程没有执行机会
陷入死循环的协程调用的 PT_WAIT_*
宏内的条件语句恒为true,永远不会 yield,所以永远不会退出该协程,其它协程就没有机会执行了,加入 PT_YIELD
强制 yield。
引用错误的 pt
特别是有嵌套协程的时候,很容易引用错误的pt,会引起时序紊乱,程序看起来跑飞了。
引用错误的循环变量
有嵌套的情况下,内层协程覆盖外层协程的循环变量。
微信扫一扫
陷入死循环的协程调用的 PT_WAIT_*
宏内的条件语句恒为true,永远不会 yield,所以永远不会退出该协程,其它协程就没有机会执行了,加入 PT_YIELD
强制 yield。
特别是有嵌套协程的时候,很容易引用错误的pt,会引起时序紊乱,程序看起来跑飞了。
有嵌套的情况下,内层协程覆盖外层协程的循环变量。
相关推荐