-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[MONO][MARSHAL] Initialize ilgen with a flag #77448
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
Conversation
60013b8 to
e90a452
Compare
b1dae36 to
09902c0
Compare
|
Azure Pipelines successfully started running 1 pipeline(s). |
lambdageek
left a comment
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.
Thanks!
|
/azp run runtime-extra-platforms |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-wasm |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-extra-platforms |
|
/azp run runtime-wasm |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-extra-platforms |
|
/azp run runtime-wasm |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
The remaining test failure appears to be this issue: #77630 However, I am reluctant to merge this until that is resolved. That issue prevents the whole test suite from running, since it stops the product build step, and errors in this change definitely have the possibility of breaking wasm. |
|
Well, it passed several other wasm lanes and the marshaling stuff doesn't vary on them. So I think this is good to merge. |
|
@naricc @lambdageek - we should give this fix a few days on main and then consider backporting to servicing release |
|
/backport to release/7.0 |
|
Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/4500733710 |
Currently, marshal ilgen callbacks are initialized lazily or by having embedders call
mono_marshal_ilgen_init, and the code for doing this has a race condition. This change modifiesmono_marshal_ilgen_initso that it sets a flag, and if the flag is set either ilgen callbacks are installed later during startup (intead of lazily). If the flag is not set, and ENABLE_ILGEN is false, the noilgen callbacks are installed instead.Installation of callbacks occurs only once before any user code is executing, so there is no longer a race condition. See discussion here: #77383 (comment)
Fixes: #74603
Fixes: #77090