关于协程挂起并恢复的问题


#1
suspendCoroutine {
     if (xxx)
         it.resume(await)
     //如果 else 不做任何处理会不会造成内存泄漏或协程泄漏什么的?
}

#2

首先,参考benny的新作《深入理解Koltin协程》代码清单 3-8 不会挂起的挂起函数,这里的 resume 不会挂起。

其次,你认为会泄露的理由是什么


#3

那如果在这里挂起呢?


#4

那如果在这里挂起呢?
其次,这里不在调用resume,那该段挂起函数以及调用该函数的协程都不会执行了吧?

其实我也觉得不会泄漏,但是书的第44页代码清单3-17下面的那一行让我感觉他会泄漏,也就是: 不管结果如何,Continuation的resumeWith一定会被调用


京ICP备16022265号-2 Kotlin China 2017 - 2018