-
Notifications
You must be signed in to change notification settings - Fork 513
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OS synchronization context #1169
Conversation
We build Mono on gitlab CI now. I kicked off build here: https://gitlab.cds.internal.unity3d.com/vm/mono/pipelines/48456 Tests will run as part of this. |
Looks like that build completed successfully. Which step runs tests? |
The Linux and OSX builds run tests. You'll see a nice |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding @joshpeterson to take a second look. Things look okay to me. Will need to sync with IL2CPP to get icalls to match up.
I have an IL2CPP branch ready to be PRed in once katana tests complete. |
This PR implements a mechanism for the runtime to provide a fallback SynchronizationContext. This is needed in scenarios where managed code doesn't necessarily set its own SynchronizationContext and awaits on OS UI thread. .NET runtime makes sure that we end up on the same thread after await, but there was no such mechanism in IL2CPP. Since the way it's handled is highly platform specific, I decided to implement those details in il2cpp OS abstraction layer.
This is one part of the fix for https://fogbugz.unity3d.com/f/cases/1130193/ (another part is in IL2CPP).
Is there anything I can do to minimize the risk of these changes? I made sure Mono builds on katana:
https://katana.bf.unity3d.com/projects/Mono%20Runtime%20and%20Classlibs/builders?krait-signal-handler_branch=master&mono-build-deps_branch=default&mono_branch=os-synchronization-context&boo_branch=unity-trunk&cecil_branch=unity-master&unityscript_branch=unity-trunk&mono-build-tools-extra_branch=master
However, I don't think any tests run there.