问题标签 [signals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
32367 浏览

c - sigprocmask() 中的 Set 和 Oldset

我还没有完全理解,如何使用sigprocmask(). 特别是setandoldset及其语法如何工作以及如何使用它们。

请举例说明,阻止,说 SIGUSR1 几秒钟,然后解除阻止并处理它。

0 投票
2 回答
2396 浏览

c - 使用信号打印奇偶数

我需要打印自然编号。1,2,...n 这样父进程打印所有奇数,子进程打印所有偶数,所有这些都需要使用 POSIX 信号来完成。我将如何实现这一目标?

输出应该是:

家长:1
孩子:2
家长:3
...

0 投票
2 回答
7384 浏览

java - 在 Java 虚拟机中处理信号

是否可以在 Java 虚拟机中处理 POSIX 信号?

至少SIGINTSIGKILL应该是完全独立于平台的。

0 投票
4 回答
17113 浏览

perl - LWP::UserAgent 请求方法的真正超时

我正在尝试实现对不可靠服务器的请求。这个请求很好,但不是 100% 需要我的 perl 脚本成功完成。问题是服务器偶尔会死锁(我们正试图找出原因)并且请求永远不会成功。由于服务器认为它是活动的,它保持套接字连接打开,因此 LWP::UserAgent 的超时值对我们没有任何好处。对请求强制执行绝对超时的最佳方法是什么?

仅供参考,这不是 DNS 问题。死锁与同时访问我们的 Postgres 数据库的大量更新有关。出于测试目的,我们基本上在服务器响应处理程序中放置了一个 while(1) {} 行。

目前,代码如下所示:

我试过使用信号来触发超时,但这似乎不起作用。

我要使用的最终答案是离线某人提出的,但我会在这里提及。出于某种原因,SigAction 有效,而 $SIG(ALRM) 无效。仍然不确定为什么,但这已经过测试。这是两个工作版本:

0 投票
5 回答
3243 浏览

c++ - 将浮点异常转换为 C++ 异常

是否可以在 x86 Linux 上将浮点异常(信号)转换为 C++ 异常?

这是出于调试目的,因此不可移植性和缺陷是可以的(例如,如果不能 100% 保证调用所有析构函数)。

0 投票
4 回答
2786 浏览

c++ - 捕获信号并向用户报告问题的便携式方式

如果由于某种奇迹在我们的程序中发生了段错误,我想捕获 SIGSEGV 并让用户(可能是 GUI 客户端)通过单个返回码知道发生了严重问题。同时我想在命令行上显示信息以显示哪个信号被捕获。

今天我们的信号处理程序如下所示:

我可以听到上面的恐怖尖叫,因为我从这个线程中读到从信号处理程序调用不可重入函数是邪恶的。

是否有一种可移植的方式来处理信号并向用户提供信息?

编辑:或者至少在 POSIX 框架内可移植?

0 投票
10 回答
221908 浏览

c - 如何防止 SIGPIPE(或正确处理)

我有一个小型服务器程序,它接受 TCP 或本地 UNIX 套接字上的连接,读取一个简单的命令并(取决于命令)发送回复。

问题是客户可能对答案不感兴趣,有时会提前退出。因此,写入该套接字将导致 aSIGPIPE并使我的服务器崩溃。

在这里防止崩溃的最佳做法是什么?有没有办法检查线路的另一端是否仍在阅读?(select()似乎在这里不起作用,因为它总是说套接字是可写的)。还是我应该SIGPIPE用处理程序捕获并忽略它?

0 投票
2 回答
4336 浏览

python - Python 信号问题:如果在执行另一个信号处理程序期间收到 SIGQUIT,则 SIGQUIT 处理程序会延迟执行?

下面的程序非常简单:它每半秒输出一个点。如果它收到一个SIGQUIT,它会继续输出 10 个Q s。如果它收到一个SIGTSTP ( Ctrl- Z),它会输出 10 个Z

如果它在打印Q s 时收到SIGTSTP ,它将在完成 10 个Q s 后打印 10 个Z s。这是一件好事。

但是,如果它在打印Z s 时收到SIGQUIT,则无法在它们之后打印Q s。相反,它仅在我通过 KeyboardInterrupt 手动终止执行后才将它们打印出来。我希望Q s 在Z s之后立即打印。

这发生在 Python2.3 中。

我究竟做错了什么?

0 投票
2 回答
726 浏览

python - C 中的 sighold 和 sigrelse 函数的 Python 等价物是什么?

看来 Python 信号模块没有任何类似于 C 中使用 signal.h 的 sighold 和 sigrelse 函数的东西。是否有任何类型的 Python 等价物?

非常感谢!

0 投票
6 回答
3430 浏览

.net - 在 .NET 中使线程向另一个线程发出信号的最佳方法是什么?

如果用户希望中断执行,我需要另一个线程信号,但是我不确定如何实现信号/信号检查机制。我不想在我的项目中有一个单例(比如 global bool),但是有没有其他选择?

这个线程中,人们建议在 C++ 中使用适当的结构,但我不知道 .NET 中有任何类似的东西。有人可以解释一下吗?