Hey,
I currently work on getting our project ready for IL2CPP. So far everything compiles but during runtime all calls of static Interlocked methods crash.
Here are some C# examples:
// we get some bottleneck, start next worker
var runningCounter = Interlocked.Read(ref this.runningCounter);
or
Interlocked.Increment(ref this.runningCounter);
And here's the compiled CPP code:
// System.Int64 System.Threading.Interlocked::Increment(System.Int64&)
extern "C" int64_t Interlocked_Increment_m18231 (Object_t * __this /* static, unused */, int64_t* ___location, const MethodInfo* method)
{
using namespace il2cpp::icalls;
typedef int64_t (*Interlocked_Increment_m18231_ftn) (int64_t*);
return ((Interlocked_Increment_m18231_ftn)mscorlib::System::Threading::Interlocked::Increment64) (___location);
}
And here's the crash error I get:
Tread 1: EXC_BAD_ACCESS (code=EXC_ARM_DA_ALIGN, address=0x93bcf14)
Any hints on this one?
It's totally strange and as I said, every Interlocked call crashes.
Thanks a lot
↧