17 lines
460 B
Scheme
17 lines
460 B
Scheme
|
; some useful utilities
|
||
|
|
||
|
(define (host-name-or-ip addr)
|
||
|
(with-fatal-error-handler
|
||
|
(lambda (condition more)
|
||
|
(call-with-values
|
||
|
(lambda () (socket-address->internet-address addr))
|
||
|
(lambda (ip port)
|
||
|
(format-internet-host-address ip))))
|
||
|
(host-info:name (host-info addr))))
|
||
|
|
||
|
(define (on-interrupt interrupt thunk)
|
||
|
(let lp ((event (most-recent-sigevent)))
|
||
|
(let ((next (next-sigevent event interrupt)))
|
||
|
(thunk)
|
||
|
(lp next))))
|