コルーチンから到達可能な runBlocking ビルダーを報告します。

コルーチンは実行スレッドを共有します。 runBlocking ビルダーがコルーチンから呼び出されると、元になるスレッドがブロックされ、他のコルーチンがこのリソースを使用できなくなります。 これによりパフォーマンスの問題が発生し、ひどい場合にはスレッドスターべーションが発生する可能性があります。

これは、コルーチンのプリミティブ (suspend 関数またはビルダー) から runBlocking ビルダーへの潜在的なコールスタックを提供します。

例:


  suspend fun main() {
      foo() 
   }

  fun foo() {
      runBlocking { suspendFunction() }
  }

可能な解決策:


  suspend fun main() {
      foo() 
   }

  suspend fun foo() {
      suspendFunction()
  }

仮想関数の解析を構成するには、「オーバーライドを含む関数を調べる」オプションを使用します。