mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00

1. Fix SimpleCache startReadWrite asymmetry. Allow more concurrency. - startReadWrite does not have the concept of a read lock. Once a cached span is returned, the caller can do whatever it likes for as long as it wants to. This allows a read to be performed in parallel with a write that starts after it. - If there's an ongoing write, startReadWrite will block even if the return operation will be a read. So there's a weird asymmetry where reads can happen in parallel with writes, but only if the reads were started first. - This CL removes the asymmetry, by allowing a read to start even if the write lock is held. - Note that the reader needs to be prepared for the thing it's reading to disappear, but this was already the case, and will always be the case since the reader will need to handle disk read failures anyway. 2. Add isCached method.