inet_aton
线程安全吗?根据UNP我知道POSIX不需要很多Sockets API是线程安全的,因此我必须假设它们不是,但一般来说我如何知道Perl中的某些东西是否是线程安全的?我需要在多大程度上锁定我调用的库函数?我该如何锁定它们?当我尝试类似lock(&inet_aton)
的内容时,它会给我一个错误:Can't modify non-lvalue subroutine call in lock
。
答案 0 :(得分:2)
如果仔细阅读inet_aton
manpage,您会看到此调用不使用任何共享状态(与同一联机帮助页中描述的inet_ntoa
函数相反),因此应该是线程安全的。< / p>
函数将其结果写入调用者提供的结构也支持此功能。
Perl使用a thin wrapper on top of those functions,因此不会更改底层库的线程安全性。
答案 1 :(得分:2)
函数inet_aton
在函数调用之间没有任何状态,所以我没有看到为什么它不是线程安全的任何理由(前提是你传递它的参数不在线程)。