Fixing race issues the right way

Mathias LANG geod24 at gmail.com
Mon Apr 6 03:19:27 UTC 2020


On Sunday, 5 April 2020 at 22:24:27 UTC, solidstate1991 wrote:
> My game engine is currently broken due to some race issue I 
> don't really know how to resolve.
>
> It seems that the compiler tries to skip instructions that are 
> not locked with a `writeln()` or something similar. Usually I 
> can safely remove the writeln after compiling it once with that 
> way. However I've once ran into an issue when a previously 
> working code just started to emit random junk data depending on 
> CPU usage, and in that case the aforementioned workaround only 
> partially worked (delaying crashes, etc).
>
> I've heard something about Mutex, however I lack the experience 
> with multithreading.

Is there public code you can link to ?
Look for any usage of `__gshared`. Are you using `shared` as well 
? Turn on `-preview=nosharedaccess` to get better diagnostic. Are 
you using any `extern` code ? How do you communicate between 
threads ? Message passing, or simple shared memory ?


More information about the Digitalmars-d-learn mailing list