gpt4 book ai didi

linux - mq_send 是原子的吗?

转载 作者:IT王子 更新时间:2023-10-29 00:37:54 25 4
gpt4 key购买 nike

谁能告诉我如果多线程程序在执行 mq_send 期间收到 SIGSTOP 信号会发生什么?

最佳答案

mq_send 的手册页表明它是在 mq_timedsend 之上实现的,它是 Linux 中的系统调用。系统调用通常是原子的,因为它们要么成功,要么不成功。如果系统调用被信号中断,通常的行为是返回 -1 并将 errno 设置为 EINTR。看起来 mq_send 有这种行为。

基本上,您应该检查 EINTR,如果以这种方式失败,则重试调用。这对于像 recvselect 这样可能阻塞的系统调用尤为重要,因为它们被中断的可能性更高。

关于linux - mq_send 是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1645337/

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