Split mRulesLock in 2 distinct locks.
mRulesLock was used to lock Life, the Universe, and Everything. Or more
specifically, UID rules, network policies, and other state.
As such, it was frequently a cause of slowness in the device due to lock
contention. For example, isNetworkMetered() is a method called by
ConnectivityService and it only needs to lock the network policies info,
but because it required the full lock, it would be often on hold when
the UID state is changed by onUidStateChanged().
BUG: 29397827
Change-Id: I7aac8f33e150c52cf7a682f0290a91a2c350b8de
1 file changed