This is NOT NEW but it still worths being emphasized again…
In my current render engine I have a bool variable that needs to be evaluated like this:
while(bIsRunning);
this piece of code controls the termination of one thread. In debug mode it works fine, but it never ends in release mode – compiler did some harmful optimization that bIsRunning was not evaluated iteratively as code indicates.
Fixing is quite simple:
volatile bool bIsRunning;
Actually this is a common issue in hardware driver development..
本文探讨了在软件开发过程中,特别是在硬件驱动开发中遇到的一个常见问题:编译器优化可能导致迭代条件判断失效的情况。文章通过一个具体示例说明了如何使用volatile关键字来避免编译器的有害优化。
200

被折叠的 条评论
为什么被折叠?



