1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# Tests that SIGALRM can interrupt read set f [open "/dev/urandom" r] set count 0 set error NONE signal handle SIGALRM catch -signal { alarm 0.5 while {1} { incr count [string bytelength [read $f 100]] } alarm 0 signal default SIGALRM } error puts "Read $count bytes in 0.5 seconds: Got $error" $f close