Questions tagged «data-race»


3
多线程程序停留在优化模式下,但在-O0下正常运行
我编写了一个简单的多线程程序,如下所示: static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } 它通常表现在调试模式下在Visual Studio中或-O0在GC c和后打印出的结果1秒钟。但是它卡住了,在“ 释放”模式或中不打印任何内容-O1 -O2 -O3。

2
IBM示例代码,不可重入函数在我的系统中不起作用
我正在研究编程的重入性。在IBM的这个站点上(确实不错)。我建立了一个代码,复制到下面。这是在网站上滚动的第一个代码。 该代码尝试通过打印在“危险上下文”中不断变化的两个值来显示涉及在文本程序的非线性开发中共享访问变量的问题(异步性)。 #include <signal.h> #include <stdio.h> struct two_int { int a, b; } data; void signal_handler(int signum){ printf ("%d, %d\n", data.a, data.b); alarm (1); } int main (void){ static struct two_int zeros = { 0, 0 }, ones = { 1, 1 }; signal (SIGALRM, signal_handler); data = zeros; alarm …
11 c  gcc  signals  x86-64  data-race 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.