Closed aam closed 2 months ago
Did we mark these functions as leaf accidentally? I would imagine that they should not be preventing threads from reaching safepoints.
Reload safepoints are different from gc and deopt safepoints, so currently getting to those is impossible when in ffi call.
Marking P2 as this could be hit potentially by a user.
Switched implementation away from using ffi.
Example failure https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/vm-reload-linux-release-x64/462/overview
Reason for the failure and timeout/hanging is that isolate that grabbed the mutex now sits at safepoint requested for reload, but some other isolate is waiting for a mutex, can't get to a safepoint check.
cc @mraleph