Handle a signal: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|TXR}}: Added.) |
||
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}}== |