in teamcity-rest-client-impl/src/main/kotlin/org/jetbrains/teamcity/rest/coroutines/implementation.kt [2832:2842]
suspend fun getValue(): T {
if (value === NotInitialized) {
mutex.withLock {
if (value === NotInitialized) {
value = producer()
}
}
}
@Suppress("UNCHECKED_CAST")
return value as T
}