Status Update
Comments
da...@google.com <da...@google.com>
ap...@google.com <ap...@google.com> #2
There are a few more changes to DataStoreImpl's logic which makes a reevaluation necessary.
Now with Yigit's changes, datastore's
A ReadException is not automatically handled and stays in cache until a updateData call which revisits handleUpdate
call proceeds to
Description
Version used: 2.0.0
Devices/Android versions reproduced on: Any
We recently started seeing a lot of lock contention upon subscription to Observables provided by Room. At first we thought that the problem was caused by `syncTriggers` doing DB work on the main thread (a known issue here:
It seems that the close lock is unintentionally being used to obtain an exclusive lock on the entire database, blocking any other subscriptions while there is either another subscription happening at the same time or the refresh runnable is running. I'm not sure why the protection against closing is required in the first place, but maybe a `ReentrantReadWriteLock` could accomplish the intended goal without the exclusiveness.