Prevent ConcurrentModificationException in updateAllRecognitions
When invoking updateAllRecognitions, if a callback binder was determined to have died, an internal function would go and remove it from mModelDataMap. However, updateAllRecognitions was iterating over this map, so it would then explode. By first making a copy of the model datas before iterating over all of them, this problem is avoided. (As part of trying to figure out what was happening, also updated all the method names that implicitly assumed they had a lock, and double checked that everything with a Locked suffix is actually locked) Bug: 62487479 Test: Use the sound trigger test app to load and start two models, force kill the app (so the dangling binders hang around), then enable power save (which triggers the call to updateAllRecognitions) Change-Id: I87b9dfc1b2af5e294050b146737916ccaad882c1
Loading
Please register or sign in to comment