Add some timing logs for encryption
This commit is contained in:
parent
82a7f29497
commit
2f1e282950
|
@ -39,6 +39,7 @@ import org.matrix.rustcomponents.sdk.crypto.RequestType
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlin.system.measureTimeMillis
|
||||||
|
|
||||||
private val loggerTag = LoggerTag("PrepareToEncryptUseCase", LoggerTag.CRYPTO)
|
private val loggerTag = LoggerTag("PrepareToEncryptUseCase", LoggerTag.CRYPTO)
|
||||||
|
|
||||||
|
@ -62,12 +63,16 @@ internal class PrepareToEncryptUseCase @Inject constructor(
|
||||||
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId Check room members up to date")
|
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId Check room members up to date")
|
||||||
// Ensure to load all room members
|
// Ensure to load all room members
|
||||||
if (ensureAllMembersAreLoaded) {
|
if (ensureAllMembersAreLoaded) {
|
||||||
|
measureTimeMillis {
|
||||||
try {
|
try {
|
||||||
loadRoomMembersTask.execute(LoadRoomMembersTask.Params(roomId))
|
loadRoomMembersTask.execute(LoadRoomMembersTask.Params(roomId))
|
||||||
} catch (failure: Throwable) {
|
} catch (failure: Throwable) {
|
||||||
Timber.tag(loggerTag.value).e("prepareToEncrypt() : Failed to load room members")
|
Timber.tag(loggerTag.value).e("prepareToEncrypt() : Failed to load room members")
|
||||||
throw failure
|
throw failure
|
||||||
}
|
}
|
||||||
|
}.also {
|
||||||
|
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId load room members took: $it ms")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
val userIds = getRoomUserIds(roomId)
|
val userIds = getRoomUserIds(roomId)
|
||||||
val algorithm = getEncryptionAlgorithm(roomId)
|
val algorithm = getEncryptionAlgorithm(roomId)
|
||||||
|
@ -85,7 +90,11 @@ internal class PrepareToEncryptUseCase @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun preshareRoomKey(roomId: String, roomMembers: List<String>, forceDistributeToUnverified: Boolean) {
|
private suspend fun preshareRoomKey(roomId: String, roomMembers: List<String>, forceDistributeToUnverified: Boolean) {
|
||||||
|
measureTimeMillis {
|
||||||
claimMissingKeys(roomMembers)
|
claimMissingKeys(roomMembers)
|
||||||
|
}.also {
|
||||||
|
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId claimMissingKeys took: $it ms")
|
||||||
|
}
|
||||||
val keyShareLock = roomKeyShareLocks.getOrPut(roomId) { Mutex() }
|
val keyShareLock = roomKeyShareLocks.getOrPut(roomId) { Mutex() }
|
||||||
var sharedKey = false
|
var sharedKey = false
|
||||||
|
|
||||||
|
@ -113,6 +122,7 @@ internal class PrepareToEncryptUseCase @Inject constructor(
|
||||||
HistoryVisibility.JOINED
|
HistoryVisibility.JOINED
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
measureTimeMillis {
|
||||||
keyShareLock.withLock {
|
keyShareLock.withLock {
|
||||||
coroutineScope {
|
coroutineScope {
|
||||||
olmMachine.shareRoomKey(roomId, roomMembers, settings).map {
|
olmMachine.shareRoomKey(roomId, roomMembers, settings).map {
|
||||||
|
@ -133,6 +143,9 @@ internal class PrepareToEncryptUseCase @Inject constructor(
|
||||||
}.joinAll()
|
}.joinAll()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}.also {
|
||||||
|
Timber.tag(loggerTag.value).d("prepareToEncrypt() roomId:$roomId shareRoomKeys took: $it ms")
|
||||||
|
}
|
||||||
|
|
||||||
// If we sent out a room key over to-device messages it's likely that we created a new one
|
// If we sent out a room key over to-device messages it's likely that we created a new one
|
||||||
// Try to back the key up
|
// Try to back the key up
|
||||||
|
|
Loading…
Reference in New Issue