【发布时间】:2012-09-26 06:30:39
【问题描述】:
我现在正在移植一个单线程库以支持多线程,并且我需要使用局部静态或全局变量的函数的完整列表。
感谢任何信息。
【问题讨论】:
-
一般建议:除非手册页中另有说明,否则将所有函数视为不可可重入。
-
@JoachimPileborg 该建议如果应用于 glibc 手册,将产生大量误报;手册根本不是那样写的。 (人们想要的术语是“线程安全”,而不是“可重入”——它们的意思完全不同。重入是一个早于线程或任何其他类型的并发的概念。)
-
@JoachimPileborg 谢谢。我想我明白了你的意思,但这不是我要找的。我编写了一个脚本来搜索手册页并收集所有具有 function_r() 等效项的 function() 存在。我想这就是我需要的。
-
@longbowk No. reentrancy 意味着可以在函数处于活动状态时从异步中断调用该函数。考虑一个带有临界区的函数。它是线程安全的,但不可重入。
-
@JimBalter 是的。你说的对。我只是想你给我看的例子,并要纠正我问的问题。然后发现你已经回答了我。非常感谢你。那么我正在寻找的是非线程安全的,不是不可重入的。那么 Joachimileborg 的建议很好。
标签: c multithreading glibc