aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2023-05-28 11:22:12 +1000
committerSteve Bennett <steveb@workware.net.au>2023-07-04 09:23:43 +1000
commit41f431f30cc6118ef982c6374914810cd07a8106 (patch)
tree036384d2c7e90a0236642ebf65686601c92656d5 /examples
parentad720049ec1ae3536d64fbb4c80a79e65ba5af39 (diff)
downloadjimtcl-41f431f30cc6118ef982c6374914810cd07a8106.zip
jimtcl-41f431f30cc6118ef982c6374914810cd07a8106.tar.gz
jimtcl-41f431f30cc6118ef982c6374914810cd07a8106.tar.bz2
aio: change to use unix io, not stdio
This changes especially makes buffered I/O work with non-blocking channels. - separate read and write buffering - support for timeout on blocking read - read/write on same channel in event loop with buffering - read buffer is the same across read, gets, copyto - autoflush non-blocking writes via event loop - copyto can now copy to any filehandle-like command - add some copyto tests Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'examples')
-rw-r--r--examples/client-server.tcl16
1 files changed, 6 insertions, 10 deletions
diff --git a/examples/client-server.tcl b/examples/client-server.tcl
index 01b1ed2..c73849c 100644
--- a/examples/client-server.tcl
+++ b/examples/client-server.tcl
@@ -38,11 +38,9 @@ if {[os.fork] == 0} {
$f readable [list onread $f]
alarm 10
- catch -signal {
- verbose "child: in event loop"
- vwait done
- verbose "child: done event loop"
- }
+ verbose "child: in event loop"
+ vwait -signal done
+ verbose "child: done event loop"
alarm 0
$f close
exit 0
@@ -55,9 +53,9 @@ set done 0
set f [socket stream.server 0.0.0.0:9876]
proc server_onread {f} {
- verbose "parent: onread (server) got connection on $f"
+ verbose "parent: onread (server) got connection on [$f filename]"
set cfd [$f accept]
- verbose "parent: onread accepted $cfd"
+ verbose "parent: onread accepted [$cfd filename]"
verbose "parent: read request '[string trim [$cfd gets]]'"
@@ -72,9 +70,7 @@ proc server_onread {f} {
$f readable [list server_onread $f]
alarm 10
-catch -signal {
- vwait done
-}
+vwait -signal done
alarm 0
$f close