Fixed issues with transaction synchronization in VRI
There were several crashes in transaction native code that was a result of unsynchronized access. This was due to VRI posting the completed transaction onto a new thread without first copying it. When this occurs, a timeout can be invoked and modify the same transaction without holding a lock. This fix ensures the transaction is merged (and therefore cleared) to a local reference before posting the message to ensure it's no longer using the transaction that requires the lock. This also exposed an issue with the logic around checking if it's a client side VRI or system side. The crash should only have occurred in system server since non system server VRI shouldn't post the final transaction onto the message queue and therefore are holding the lock. This CL also fixes that logic to ensure that in non system server VRI's we don't post to the message queue since it's not needed. Test: Added logs in VRI to ensure the only posting to queue in system server Bug: 302686733 Change-Id: I58539a81b5150af07e2f47e912885e6978d0eeec
Loading
Please register or sign in to comment