腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
在
Queue.Queue.get
()
中被
阻塞
时
处理
信号
、
、
、
我有一个读取Queue.Queue的程序,它通常会被
阻塞
。
在
程序中,我为SIGTERM定义了一个
信号
处理
程序,但是它似乎忽略了它。 对于其他我没有被队列
阻塞
的程序,这个方法是有效的。
浏览 1
提问于2016-08-25
得票数 2
1
回答
当
信号
阻塞
时
获取
信号
、
、
、
当程序
阻塞
硬件生成的
信号
(如SIGSEGV ),然后得到这个
信号
时
,我无法理解程序的行为。例如,如果有一个用于SIGSEGV的
信号
处理
程序,它是用sigaction安装的(
信号
在
处理
程序
中被
阻塞
),但是程序
在
处理
程序中获得另一个SIGSEGV。在这种情况下,我找不到程序应该如何运行的描述。据我所知,
在
Linux上,
信号
将解除<e
浏览 5
提问于2015-08-09
得票数 1
回答已采纳
5
回答
当从另一个线程发出
信号
时
,我如何“脱离”
阻塞
套接字上的“接受方”?
、
、
我
在
,但我不太明白答案。 您应该做的是向线程发送一个
信号
,该线程
在
accept
中被
阻塞
。这将给它EINTR,它可以干净地脱离-然后关闭插座。不要关闭线程,而不是使用它的线程。这里我不知道该做什么--当在线程1中接收到
信号
时
,accept已经
阻塞
了,并且<e
浏览 6
提问于2013-05-07
得票数 6
2
回答
将
信号
指向C中的特定线程
、
、
、
、
我们
在
流程中使用posix间隔计时器(使用timer_create()创建),
在
计时器到期
时
生成SIGALRM。生成的
信号
由进程中的特定线程异步
处理
(sigwait),我们已经使用sig_block
阻塞
了所有其他线程中的
信号
。‘Sig_block’是
在
子线程产生之前
在
主线程中调用的,因此子线程从父线程(即main)继承它。然而,这伴随着一个警告,如果进程中包含的任何库
在
dllmain期间产生任何线程,该
信号<
浏览 71
提问于2021-02-10
得票数 1
回答已采纳
1
回答
选择系统
时
偶尔不会出现EINTR故障
使用timer_create向等待select函数的线程发送实时
信号
。 这个
信号
在线程
中被
捕获和
处理
。基于这样的事实,当一个
信号
被捕获
时
,select将被中断,如果select失败并返回错误号EINTR,我会实现一些逻辑。
浏览 1
提问于2014-07-08
得票数 3
1
回答
重入函数read()
、
、
但是我发现服务器
在
read()中会被gdb
阻塞
。这种解释是正确的吗?
浏览 0
提问于2011-04-09
得票数 3
回答已采纳
1
回答
在
信号
处理
程序期间,堆栈的其余部分发生了什么?
、
、
、
我
在
我的主线程中设置了一个
信号
处理
程序。然后,一个单独的线程向我的主线程发送这个
信号
。我的
信号
处理
程序正在被适当地调用,但我不确定此时主线程的“状态”是什么,以及它是否可以恢复。基本上,我的主线程
在
read()调用
中被
阻塞
,并且由于一个异常事件,另一个线程向它发送了一个
信号
。因此,我希望read()调用失败(EINTR?),因此我的另一个线程向主线程发送此
信号
。
浏览 3
提问于2015-04-22
得票数 1
2
回答
信号
执行过程中的σ掩码
、
、
、
、
我目前正在研究如何在执行关键代码段
时
使用sigprocmask来阻止某些
信号
(
在
本例中是SIGALRM和SIGCHLD)。与这些
信号
相关联的两个
信号
处理
程序都将访问和修改一个中心数据结构,因此
在
主进程
处理
它
时
,我必须阻止它们访问它。 目前,我的计划是
在
代码的关键部分开始
时
简单地禁用这些
信号
,然后
在
结束
时
重新启用它们。disable signals
浏览 8
提问于2011-11-17
得票数 3
1
回答
通过
信号
中断两个
阻塞
的pthread
、
、
在
我的应用程序中,主线程创建了两个连接的线程;一个线程通过
在
循环中调用scanf()来等待用户输入,另一个线程通过
在
循环中调用accept()来侦听传入的套接字连接。新连接在分离的单独线程中
处理
。我希望程序
在
收到SIGINT
信号
时
自动正常关闭。这意味着侦听线程应该停止接受新的连接,等待当前服务连接的线程关闭,然后。等待用户输入的线程也应该结束,从而允许主线程结束。Scanf()和accept()都会
阻塞
,但可以被
信号
中断,但是发送到进
浏览 1
提问于2012-01-30
得票数 5
回答已采纳
1
回答
使用sigaction()进行I/O
处理
、
、
、
、
我需要写一个能够
在
串行和can总线端口上读写的驱动程序。还有其他解决这个问题的可能性吗?
浏览 4
提问于2016-02-22
得票数 0
回答已采纳
1
回答
如何在linux下诱导EINTR导致的semop调用失败?
、
我甚至尝试了
在
两个不同的线程或两个不同的进程中运行多个
信号
量。但我不能得到EINTR失败。我甚至尝试
在
semop等待
信号
量的时候将
信号
作为SIGCHLD发送到进程。如果我将sigusr1发送到
阻塞
线程(t,t2,t3,t4),则会中断semop调用并结束循环。 我无论如何都没有得到EINTR。然后我检查了内核源代码。
在
EINTR期间,我看到它们正在循环,并且报告的内容不同。
浏览 3
提问于2018-04-27
得票数 0
2
回答
多线程C程序;如何杀死线程生成的进程?
、
、
、
此外,还有一个等待
信号
的
信号
处理
线程。如果检测到SIGINT,那么它会告诉主线程停止创建线程,因此最终所有线程都结束了,程序可以退出。如果
信号
在所有线程
中被
阻塞
,我如何向正在运行的进程发送
信号
以终止它们? 是否有办法使生成的进程只接收主程序发送的
信号
,而不接收发送到主程序的
信号
?
浏览 2
提问于2010-02-17
得票数 4
回答已采纳
3
回答
在
Linux上反向接收实时
信号
、
、
、
、
这个程序向自己发送实时
信号
并
处理
它们.一旦它们被
处理
,它输出它接收到的
信号
的顺序。signal SIGRTMIN+1, value 0Received signal SIGRTMIN+1, value 8 实时
信号
以保证的顺序传送.同一类型的多个实时
信号
按发送顺序传送。如果向进程发送不同的实时
信号
,则从编号最低的
信号
开始
浏览 4
提问于2014-05-03
得票数 3
回答已采纳
2
回答
信号
不能在execv()中正确重新启用
、
、
它需要在接收到某些
信号
时
重新启动自己,以避免崩溃。问题是,
在
重启之后,我不能重新启用该
信号
。也就是说,
信号
不能被接收到两次。
在
执行execv()之后,当新进程调用signal()来设置
信号
时
,每次都会返回SIG_DFL。即使我连续调用它两次--表明它从一开始就没有被设置过。是不是从原始进程中继承了一些奇怪的标志?
浏览 2
提问于2009-06-21
得票数 6
回答已采纳
1
回答
在
信号
处理
函数中使用本地互斥锁来同步共享数据
、
、
、
、
我
在
Linux操作系统上的应用程序中有4个pthread。我的理解正确吗?
浏览 1
提问于2016-10-19
得票数 1
1
回答
当进程处于内核模式
时
,默认情况下内核会阻止挂起
信号
吗?
、
、
8.5.3当内核将进程p从内核模式切换到用户模式(例如,从系统调用返回或完成上下文切换)
时
,它检查未
阻塞
的挂起
信号
集(未决和
阻塞
)是否为p。但是,如果集合是非空的,那么内核
在
集合中选择一些
信号
k (通常最小的k)并强制p接收
信号
k。
信号
的接收触发了进程的一些动作。当进程处于内核模式
时
,默认情况下内核会阻止挂起
信号
吗?当进程处于内核模式
时
,内核会在位向量blocked中为挂起的
信号
设
浏览 0
提问于2020-10-25
得票数 0
1
回答
POSIX
信号
在
信号
处理
程序
中被
阻塞
,尽管不在sa_mask中
、
、
、
、
我的问题是
在
一个更基本的层次上,如果一个单独的线程顺序地发送到两个队列,那么sig
处理
程序只对第一个队列运行一次。根据的说法,这是有意义的,因为当一个
信号
调用一个
处理
程序时,它会自动被
阻塞
。因此,
在
配置struct sigaction
时
,我确保从我设置为sa_mask的sigset_t中删除目标
信号
(SIGIO)。sa_mask指定
信号
掩码,
在
信号
处理
程序执行期间,
信号</
浏览 0
提问于2020-01-17
得票数 0
回答已采纳
1
回答
子进程是否也应该解锁被
阻塞
的SIGCHLD
信号
?
、
、
、
我正在尝试理解
阻塞
和解锁
信号
是如何工作的,并且我正在尝试理解下面这段代码。具体地说,我看的是第28行(代码中的注释):int a = sigprocmask(SIG_UNBLOCK, &mask, NULL);,也就是
信号
在
子对象
中被
解锁的地方。我得到代码的教科书说,代码使用
信号
阻塞
,以确保程序
在
执行删除功能(简化为printf("deleting %d\n", pid);)之前执行其添加功能(简化为printf("
浏览 133
提问于2019-04-25
得票数 2
回答已采纳
1
回答
SIGRTMAX的Valgrind和sigaction
、
、
我调用sigaction为SIGRTMAX安装一个
处理
程序,这通常很好。但是,如果我使用valgrind分析可执行文件,则此操作将失败。为什么?
浏览 1
提问于2012-10-20
得票数 1
回答已采纳
3
回答
在
linux中
信号
处理
程序的执行是不可抢占的吗?
、
、
我有一个使用SIGALRM的
信号
处理
程序注册的进程p。设置定时器以周期性地向
处理
p发送
信号
SIGALRM。
在
process p中也有多个线程在运行。
信号
处理
程序在被触发和执行时是不可抢占的吗?或者说,
信号
处理
程序的执行不会被进程p中的任何线程中断 PS:我以为
信号
处理
程序是在内核中执行的(是吗?)内核对用户模式线程是不可抢占的吗?如果错的话请纠正我。
浏览 2
提问于2011-05-26
得票数 6
回答已采纳
点击加载更多
相关
资讯
在应用机器学习时如何处理不良数据?
这些问题,你在处理数据时肯定遇到过
水处理设备在设计方案时需要考虑的点
优化串行处理代码,获取OpenVPX数字信号处理模块最佳性能,拓展串行算法在计算密集型领域应用
智能断路器在处理异常数据时,如何确保数据准确性?
热门
标签
更多标签
云服务器
ICP备案
对象存储
云点播
实时音视频
活动推荐
运营活动
广告
关闭
领券