diff options
author | Steve Bennett <steveb@workware.net.au> | 2023-05-28 11:22:12 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2023-07-04 09:23:43 +1000 |
commit | 41f431f30cc6118ef982c6374914810cd07a8106 (patch) | |
tree | 036384d2c7e90a0236642ebf65686601c92656d5 /examples | |
parent | ad720049ec1ae3536d64fbb4c80a79e65ba5af39 (diff) | |
download | jimtcl-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.tcl | 16 |
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 |