Realmのトランザクションを使っていたところ、書き込み操作はスレッドをブロックするからUIスレッドから呼ぶ時はexecuteTransactionAsyncを使ってねと書いてありました。
わかりやすい部分なら良いのですが外部ライブラリに依存している部分のコールバック内など、ブラックボックス化されているところでUIスレッドか否かを調べる方法が必要でした。
以下のようにUIスレッドか知らべることができます。
val isUiThread = Thread.currentThread() == Looper.getMainLooper().thread
info { "IS_UI_TREAD: $isUiThread" }