main

square/leakcanary

Last updated at: 29/12/2023 09:38

Handlers.kt

TLDR

This file provides utility functions and variables related to handling threads in the LeakCanary library.

Methods

There are no methods defined in this file.

Classes

There are no classes defined in this file.

package leakcanary.internal

import android.os.Handler
import android.os.Looper

internal val mainHandler by lazy { Handler(Looper.getMainLooper()) }

internal val isMainThread: Boolean get() = Looper.getMainLooper().thread === Thread.currentThread()

internal fun checkMainThread() {
  check(isMainThread) {
    "Should be called from the main thread, not ${Thread.currentThread()}"
  }
}

internal fun checkNotMainThread() {
  check(!isMainThread) {
    "Should not be called from the main thread"
  }
}