当前位置:  开发笔记 > 运维 > 正文

pthread_cancel在arm和ppc上表现不同?

如何解决《pthread_cancel在arm和ppc上表现不同?》经验,为你挑选了0个好方法。

我目前正在开发一个可以部署在arm和ppc架构上的多线程应用程序.我手臂上的pthread_cancel有问题.

手臂上的pthread_cancel与ppc的行为不同.线程被取消但是没有在arm上调用线程局部变量的析构函数.我还尝试显式定义通过pthread_cleanup_push安装的取消清理处理程序例程.但是当线程被取消时它没有被调用.

该代码适用于ppc.取消线程时,正在调用局部变量的析构函数.当我明确定义一个清理处理程序时,它在调用pthread_cancel时被调用并执行.

我错过了什么吗?一些编译器选项也许?

编程语言:C++

编译器:arm-linux-g ++/powerpc-linux-g ++

操作系统:Linux

编辑:

我发现在这个libc bug上记录了一些类似的问题.

使用gcc而不是g ++并添加-fno-exception编译器选项就可以了.但我真的想了解这个问题背后的原因.此外,-fno-exception意味着我将无法在我的应用程序中执行异常处理,而不是我现在正在使用它,但我可能在将来.

谢谢.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有