Uh oh!
There was an error while loading. Please reload this page.
[MONO][MARSHAL] Initialize ilgen with a flag - #77448
Conversation
60013b8 to
e90a452Compareb1dae36 to
09902c0Compare|
Azure Pipelines successfully started running 1 pipeline(s). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
naricc
commented
Oct 26, 2022
/azp run runtime-extra-platforms |
|
Azure Pipelines successfully started running 1 pipeline(s). |
naricc
commented
Oct 26, 2022
/azp run runtime-wasm |
|
Azure Pipelines successfully started running 1 pipeline(s). |
naricc
commented
Oct 26, 2022
/azp run runtime-extra-platforms |
naricc
commented
Oct 26, 2022
/azp run runtime-wasm |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
naricc
commented
Oct 28, 2022
/azp run runtime-extra-platforms |
naricc
commented
Oct 28, 2022
/azp run runtime-wasm |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
naricc
commented
Oct 29, 2022
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. |
naricc
commented
Oct 31, 2022
Well, it passed several other wasm lanes and the marshaling stuff doesn't vary on them. So I think this is good to merge. |
SamMonoRT
commented
Oct 31, 2022
@naricc@lambdageek - we should give this fix a few days on main and then consider backporting to servicing release |
jandupej
commented
Mar 23, 2023
/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