Skip to content

Conversation

@paulb777
Copy link
Member

@paulb777 paulb777 commented Dec 5, 2025

Fix #15383

Here's a Gemini driven PR that still needs end-to-end testing and review. Gemini comments below:

Summary:
This PR modifies FIRCLSContextInitialize to install signal and mach exception handlers synchronously. Previously, these handlers were installed asynchronously on a background queue, which created a race condition for other runtime environments (like Mono, Xamarin, Unity) that need to chain signal handlers. By ensuring synchronous installation, these environments can reliably install their handlers after Crashlytics initialization and maintain a proper signal chain.

Changes:

  • Modified Crashlytics/Crashlytics/Components/FIRCLSContext.m to move FIRCLSSignalInitialize and FIRCLSMachExceptionInit out of dispatch_group_async block, ensuring they run synchronously on the calling thread (typically main thread during FIRApp.configure()).

@gemini-code-assist
Copy link
Contributor

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

@paulb777
Copy link
Member Author

paulb777 commented Dec 5, 2025

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request makes the installation of Crashlytics signal and mach exception handlers synchronous by removing the dispatch_group_async wrappers. This is a sensible change that improves predictability during initialization, which is crucial for compatibility with other crash reporters, as noted in the changelog. The resulting code is cleaner and more straightforward. My review found only a minor formatting issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Crashlytics: Signal/Mach handlers are installed asynchronously, this doesn't allow to build proper chain

2 participants