[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8938: make timeout and CTRL-C
From: |
Pádraig Brady |
Subject: |
bug#8938: make timeout and CTRL-C |
Date: |
Thu, 07 Jul 2011 11:14:12 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3 |
On 07/07/11 11:05, Pádraig Brady wrote:
> On 06/07/11 23:37, Pádraig Brady wrote:
>> OK I've added --foreground to support this.
>> Note it still maintains a separate timeout
>> monitor process to return 124 on timeout etc.
>
> Updated wording and NEWS entry now included.
> I'll push this later today.
I'm also thinking of pushing this as a separate patch,
which will set WIFSIGNALED for the timeout process itself.
This will make timeout more transparent and when doing
Ctrl-C from make for example, printing "[target] Interrupt"
rather than "[target] Error 130".
diff --git a/src/timeout.c b/src/timeout.c
index a686225..ea4af18 100644
--- a/src/timeout.c
+++ b/src/timeout.c
@@ -341,7 +361,19 @@ main (int argc, char **argv)
if (WIFEXITED (status))
status = WEXITSTATUS (status);
else if (WIFSIGNALED (status))
- status = WTERMSIG (status) + 128; /* what sh does at least. */
+ {
+ int sig = WTERMSIG (status);
+ if (!timed_out)
+ {
+ /* exit with the signal flag set, but avoid core files. */
+ if (setrlimit (RLIMIT_CORE, &(struct rlimit) {0,0}) == 0)
+ {
+ signal (sig, SIG_DFL);
+ raise (sig);
+ }
+ }
+ status = sig + 128; /* what sh returns for signaled processes.
*/
+ }