perl - Perl 的 inet_aton 线程安全吗?

标签 perl multithreading

inet_aton线程安全?我知道根据 UNP POSIX 不需要很多 Sockets API 是线程安全的,所以我必须假设它们不是,但一般来说我怎么知道某些东西在 Perl 中是否是线程安全的?我需要在多大程度上锁定我调用的库函数?我如何锁定它们?当我尝试类似 lock(&inet_aton)它给了我一个错误:Can't modify non-lvalue subroutine call in lock .

是的,我读过:Thread-Safety of System Libraries

最佳答案

如果您阅读了 inet_aton manpage仔细你会发现这个调用不使用任何共享状态(与同一联机帮助页中描述的 inet_ntoa 函数相反),因此应该是线程安全的。

函数将其结果写入调用者提供的结构也支持这一点。

Perl 使用 a thin wrapper on top of those functions因此不会改变底层库的线程安全性。

关于perl - Perl 的 inet_aton 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319469/

相关文章:

perl - 如何模拟 Perl 的内置反引号运算符?

perl - Unicode block 的命令行过滤

c++ - "strongly happens before"是什么意思?

multithreading - WinRT 是否仍然具有相同的旧 UI 线程限制?

java - 我是否错误地使用了 notify java

ruby - 在线程中调用类的方法

javascript - 如何计算 git 树哈希?

arrays - 如何使数组无限循环?

Perl 打包、解包和 STDIN

multithreading - 监视器与互斥体