СП
Size: a a a
СП
d
А
f
d
EC
EC
PE
PE
D
A
object not locked by thread before wait()
QH
QH
A
QH
A
private fun startObtainLocation() {
synchronized(lock) {
doAsync(exceptionHandler = { e ->
logger.error(javaClass, "error startObtainLocation", e)
FirebaseCrashlytics.getInstance().recordException(e)
}) {
if (locationProvider == null) {
locationProvider = AggregatedLocationProvider(this, logger, this)
}
if (locationProvider != null && !locationProvider!!.inProgress()) {
locationProvider?.startObtainLocation()
}
while (locationProvider != null) {
try {
lock.wait()
} catch (e: InterruptedException) {
logger.info(javaClass, "runnable interrupted")
disconnectFromLocationProvider()
}
}
}
}
}
A
A
synchronized(lock) {
lock.notify()
}
QH
QH