gpt4 book ai didi

c++ - 为什么在调用recv系统调用时会调用sigprocmask?

转载 作者:IT王子 更新时间:2023-10-29 00:59:14 26 4
gpt4 key购买 nike

我有一些定期调用 recv() 的代码(带有 MSG_DONTWAIT 标志)。我很好奇,因为在 vtune 中分析我的代码时,我看到一个与 recv() 关联的 sigprocmask() 调用,它占用了总时间的很大一部分执行。我很好奇为什么 recv() 调用 sigprocmask()

最佳答案

在 linux 下使用 TCP 套接字时,如果另一端意外关闭,您将收到 SIGPIPE。

因为你可以屏蔽这个信号(大多数时候,你会自己处理返回值 0,你不关心这个信号),我猜测系统库检查信号状态,如果被屏蔽,则使用更快的代码路径。

如果不是,则无法优化。

顺便说一句,你知道 pselect() 吧?

关于c++ - 为什么在调用recv系统调用时会调用sigprocmask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com