Handle a signal: Difference between revisions

Content added Content deleted
No edit summary
Line 945: Line 945:


{{omit from|GUISS}}
{{omit from|GUISS}}

=={{header|TXR}}==

<lang txr>@(do
(set-sig-handler sig-int
(lambda (signum async-p)
(throwf 'error "caught signal ~s" signum)))

(let* ((start-time (time)))
(catch (each ((num (range* 1)))
(format t "~s\n" num)
(usleep 500000))
(error (msg)
(let ((end-time (time)))
(format t "\n\n~a after ~s seconds of execution\n"
msg (- end-time start-time)))))))</lang>


Run:

<pre>$ txr handle-a-signal.txr
1
2
3
4
5
6
7
8
9
10
11
12
^C

caught signal 2 after 6 seconds of execution</pre>


=={{header|UNIX Shell}}==
=={{header|UNIX Shell}}==