Camera: Fix race between callback and unregisteration of callbacks
Because callbacks are called from a looper thread, if the subscriber unsubscribes and frees the callback, invalid memory access may occur from the looper thread. Address this by draining all pending callbacks at the time of listener unregistration. NOTE: There is rare chance that the wait on the condition times out, still resulting in the original NPE issue. We intensionally allow that to avoid deadlock, in case the application uses the same mutex lock for callbacks and unregister functions. Test: for i in {1..10}; do atest -it NativeImageReaderTest; done Test: ACameraNdkVendorTest Bug: 148976953 Change-Id: I92f5a02a4e3e63f2e72e8043ff4f4ac16c1eec5d
Loading
Please register or sign in to comment