Commit 43f5e12
committed
RUMS-5318 Fix race condition in lastFatalAnrSent
Use lazy initialization to prevent concurrent duplicate reads
## Problem
Multiple threads could concurrently read `lastFatalAnrSent` as null before
any writes occurred, causing duplicate ANR reports to be sent. The property
was implemented as a getter that read from disk on every access, allowing
race conditions where multiple threads would all see null and attempt to
report the same ANR.
## Solution
Changed `lastFatalAnrSent` from a property getter to a lazy-initialized
property. This ensures the file is read exactly once in a thread-safe manner,
and the value is cached in memory for all subsequent accesses.1 parent cc0f647 commit 43f5e12
File tree
2 files changed
+58
-8
lines changed- dd-sdk-android-core/src
- main/kotlin/com/datadog/android/core/internal
- test/kotlin/com/datadog/android/core/internal
2 files changed
+58
-8
lines changedLines changed: 11 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
235 | 235 | | |
236 | 236 | | |
237 | 237 | | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
246 | 248 | | |
| 249 | + | |
247 | 250 | | |
248 | 251 | | |
249 | 252 | | |
| |||
Lines changed: 47 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1093 | 1093 | | |
1094 | 1094 | | |
1095 | 1095 | | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
1096 | 1143 | | |
1097 | 1144 | | |
1098 | 1145 | | |
| |||
0 commit comments