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,11 +63,15 @@ 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) {
|
||||||
try {
|
measureTimeMillis {
|
||||||
loadRoomMembersTask.execute(LoadRoomMembersTask.Params(roomId))
|
try {
|
||||||
} catch (failure: Throwable) {
|
loadRoomMembersTask.execute(LoadRoomMembersTask.Params(roomId))
|
||||||
Timber.tag(loggerTag.value).e("prepareToEncrypt() : Failed to load room members")
|
} catch (failure: Throwable) {
|
||||||
throw failure
|
Timber.tag(loggerTag.value).e("prepareToEncrypt() : Failed to load room members")
|
||||||
|
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)
|
||||||
|
@ -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) {
|
||||||
claimMissingKeys(roomMembers)
|
measureTimeMillis {
|
||||||
|
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,25 +122,29 @@ internal class PrepareToEncryptUseCase @Inject constructor(
|
||||||
HistoryVisibility.JOINED
|
HistoryVisibility.JOINED
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
keyShareLock.withLock {
|
measureTimeMillis {
|
||||||
coroutineScope {
|
keyShareLock.withLock {
|
||||||
olmMachine.shareRoomKey(roomId, roomMembers, settings).map {
|
coroutineScope {
|
||||||
when (it) {
|
olmMachine.shareRoomKey(roomId, roomMembers, settings).map {
|
||||||
is Request.ToDevice -> {
|
when (it) {
|
||||||
sharedKey = true
|
is Request.ToDevice -> {
|
||||||
async {
|
sharedKey = true
|
||||||
sendToDevice(olmMachine, it)
|
async {
|
||||||
|
sendToDevice(olmMachine, it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
// This request can only be a to-device request but
|
||||||
|
// we need to handle all our cases and put this
|
||||||
|
// async block for our joinAll to work.
|
||||||
|
async {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
}.joinAll()
|
||||||
// This request can only be a to-device request but
|
}
|
||||||
// we need to handle all our cases and put this
|
|
||||||
// async block for our joinAll to work.
|
|
||||||
async {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.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
|
||||||
|
|
Loading…
Reference in New Issue