Perl的inet_aton线程安全吗?

时间:2010-02-23 15:47:09

标签: 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

2 个答案:

答案 0 :(得分:2)

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

函数将其结果写入调用者提供的结构也支持此功能。

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

答案 1 :(得分:2)

函数inet_aton在函数调用之间没有任何状态,所以我没有看到为什么它不是线程安全的任何理由(前提是你传递它的参数不在线程)。