android / android/performance-samples

JankStatsAggregator.issueJankReport concurrency issues

Abierto
#309 1 comentario 1 reacción 1 asignado Reclamado por @AjeshRPai Ver en GitHub
Lenguaje dominante
Kotlin
Estrellas
1.4k
Forks
250
Merge medio
9 min
PR fusionados (30 d)
4

Descripción

The example JankStatsAggregator class can produce `ConcurrentModificationException` for listeners that perform some additional operations on it. Presumably because of how FrameData objects are internally mutated.

It appears that JankStatsAggregator.issueJankReport attempts to account for that with copies, but it may not be fully thread safe.

For example:

```
private val reportListener = JankStatsAggregator.OnJankReportListener { _, _, jankFrameData ->
jankFrameData.filter(...).map { frame ->
// Do something with FrameData and/or StateInfo
}
}
```

This usage results in rare concurrency exceptions. I'm not sure if it is a misusage on my end, but as a user I would expect the listener to be thread safe.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.