Fix named mutexes on OSX to work between arm64 and emulated x64 processes (#62765)
authorKoundinya Veluri <kouvel@users.noreply.github.com>
Thu, 6 Jan 2022 18:14:27 +0000 (10:14 -0800)
committerGitHub <noreply@github.com>
Thu, 6 Jan 2022 18:14:27 +0000 (10:14 -0800)
commit4f01ff511f2d40173d6fe18e418490945cfe54f6
tree5f04392869c12dd1fad56477b28dbe5a74db97df
parentdc6a86df3acd0ba8b2a358ec5296cea266b531f6
Fix named mutexes on OSX to work between arm64 and emulated x64 processes (#62765)

- The page size is different between arm64 processes and emulated x64 processes
- The shared memory file size is set to the page size and there was a strict check on the file size, leading to an exception from the second process of a different arch that tries to share the same mutex
- Made the file size check less strict, and allowed an arch to increase but not decrease the file size such that it can be mapped at page size granularity
- Fix for https://github.com/dotnet/runtime/issues/62140 in main
src/coreclr/pal/src/include/pal/mutex.hpp
src/coreclr/pal/src/include/pal/sharedmemory.h
src/coreclr/pal/src/sharedmemory/sharedmemory.cpp