【问题标题】:is libstdc++ reentrant library?是 libstdc++ 可重入库吗?
【发布时间】:2010-10-27 18:39:08
【问题描述】:

我在 MAC 上使用 libstdc++ 为 firefox 开发扩展。当我在多个 Firefox 扩展中引用它时,我在 libstdc+ 库中遇到崩溃。我在想 XCode 编译器的 libstdc++ 是否可重入。如果没有,是否有可重入的 libstdc++ 版本?

【问题讨论】:

  • 你确定你有重入问题吗?您能否提供有关崩溃的更多详细信息?

标签: c++ libstdc++


【解决方案1】:

请参阅 HOWTO http://www.cs.huji.ac.il/~etsman/Docs/gcc-3.4-base/libstdc++/html/17_intro/howto.html ,特别是标题为的部分 “标准 C++ 库和多线程”。

【讨论】:

  • 重入安全和线程安全相关但不完全相同en.wikipedia.org/wiki/…
  • @Eugen Constantin Dinca:我意识到这一点(尽管我承认我本可以在回答中说得更清楚)。然而,一个非线程安全的函数肯定不会是可重入的,在我看来,libstdc++ 实现中的线程安全可能存在问题,这取决于应用程序的构建方式。跨度>
  • 不一定,即如果为了线程安全,您使用非递归互斥锁,您有一个不可重入的线程安全函数......(请注意,我不是在提倡使用递归互斥锁)
  • @Eugin Constantin Dinca:是的,你可以有一个不是可重入的线程安全函数,但你不能有一个不是线程安全的重入函数。线程安全是重入的要求之一。
  • “你不能有一个不是线程安全的可重入函数”:只有当调用它的数据不是线程之间共享/访问时。
猜你喜欢
  • 2015-08-13
  • 1970-01-01
  • 2022-01-03
  • 2011-04-21
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
相关资源
最近更新 更多