Commits


Ryan Wilson authored and GitHub committed bbcac27b72c
Release 6.10.0 (#4022) * Update versions for Release 6.10.0 * Cherrypick #3983 and include Database in release. (#3986) * Remove log argument that causes SocketRocket crash (#3983) * Add FirebaseDatabase to release. * Update CHANGELOG with version. * Cherrypick for #3984 along with CHANGELOG update. (#3988) * Fix race condition in FIRComponentContainer instance creation (#3984) * Fix race condition in FIRComponentContainer instance creation Reported in #3967. Users sometimes seeing a crash when multiple threads concurrently try to create Firestore instances. By inspection I found that there's a race here where two threads can check for presence in the cache, see nothing, proceed to creation, both store a value in the cache, and both return their copies. This would lead to two Firestores being created for a single App. This replaces `dispatch_sync` on a serial queue with good old `@synchronized` blocks. `dispatch_sync` will self-deadlock if called from a thread already on the queue while `@synchronized` allows recursion. No new tests are added because several tests like `testDependencyDoesntBlock` already cover this case. * format * Update Core CHANGELOG * Update Core CHANGELOG again * Fix merge from CHANGELOG