美文网首页DevSupport@IT·互联网
记一次线程不同步的坑

记一次线程不同步的坑

作者: HHFCodeRv | 来源:发表于2016-08-25 17:29 被阅读0次
    memcpy_Image.png

    这段简单的代码, 总是在某些时候, 就会出现p_cur_ctx->GetCallbackContent()不为空, 但是总是memcpy失败的问题. 这下无语了, 系统库有问题了吗 ?! WTF, 遇见鬼了, 从来没有见过如此诡异的问题.

    gdb p_cur_ctx->GetCallbackContent() gdb tmp

    怎么看, 这都是不可能发生的事情!!!, 为什么memcpy会失败呢?

    再看GetCallbackContent()的代码实现

    GetCallbackContent实现

    感觉上没有什么问题, 这个问题就诡异了.为什么以前程序跑的好好的, 突然间连memcpy都不靠谱了.这个世界是怎么了.

    坐下来仔细想想, 发现这个原来是自己设计框架时候留下的.

    当时设计的线程安全的单例模式, 然后也没有仔细考虑两个线程的同步的问题, 是粗心了.

    修改后的程序


    Paste_Image.png

    再也没有出现这个问题. 哎, 到处都是坑.

    相关文章

      网友评论

        本文标题:记一次线程不同步的坑

        本文链接:https://www.haomeiwen.com/subject/qzkasttx.html