Have long running analytic transactions return actual transactions.

Also add `AnalyticsService.getLongRunningTransaction` and change `AnalyticsService.stopLongRunningTransaction` to `removeLongRunningTransaction`.
This commit is contained in:
Jorge Martín 2025-11-19 17:24:35 +01:00 committed by Jorge Martin Espinosa
parent 441b2e7fb5
commit 3d590c1c46
5 changed files with 40 additions and 11 deletions

View file

@ -153,11 +153,17 @@ class DefaultAnalyticsService(
} ?: NoopAnalyticsTransaction
}
override fun startLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction) {
pendingLongRunningTransactions[longRunningTransaction] = startTransaction(longRunningTransaction.name, longRunningTransaction.operation)
override fun startLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction): AnalyticsTransaction {
val transaction = startTransaction(longRunningTransaction.name, longRunningTransaction.operation)
pendingLongRunningTransactions[longRunningTransaction] = transaction
return transaction
}
override fun stopLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction) {
pendingLongRunningTransactions.remove(longRunningTransaction)?.finish()
override fun getLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction): AnalyticsTransaction? {
return pendingLongRunningTransactions[longRunningTransaction]
}
override fun removeLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction): AnalyticsTransaction? {
return pendingLongRunningTransactions.remove(longRunningTransaction)
}
}