You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
Thank you for reporting this issue. It doesn't look like an issue with this sample but the library itself.
Please add the details requested to an issue on the product issue tracker.
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:
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.
The text was updated successfully, but these errors were encountered: