inline fun <T : Any> ThreadLocal<T>.getOrSet(
    default: () -> T
): T

Platform and version requirements: JVM

Gets the value in the current thread's copy of this thread-local variable or replaces the value with the result of calling default function in case if that value was null.

If the variable has no value for the current thread, it is first initialized to the value returned by an invocation of the ThreadLocal.initialValue method. Then if it is still null, the provided default function is called and its result is stored for the current thread and then returned.