aboutsummaryrefslogtreecommitdiff
path: root/examples/vwaitsignal.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/vwaitsignal.tcl')
-rw-r--r--examples/vwaitsignal.tcl26
1 files changed, 26 insertions, 0 deletions
diff --git a/examples/vwaitsignal.tcl b/examples/vwaitsignal.tcl
new file mode 100644
index 0000000..d59879a
--- /dev/null
+++ b/examples/vwaitsignal.tcl
@@ -0,0 +1,26 @@
+# In lieu of some proper unit tests, this example
+# checks that vwait can be interrupted by handled signals
+
+set f [open "/dev/urandom" r]
+
+set count 0
+
+$f ndelay 1
+
+signal handle SIGALRM
+
+$f readable {
+ incr count [string bytelength [read $f 100]]
+}
+
+
+set start [clock millis]
+
+# Even though nothing sets 'done', vwait will return on the signal
+alarm 0.5
+vwait -signal done
+
+set end [clock millis]
+puts "Read $count bytes and received [signal check -clear] after $($end - $start)ms"
+
+$f close