1 USING: io.sockets io kernel math threads io.encodings.ascii
2 io.streams.duplex debugger tools.time prettyprint
3 concurrency.count-downs namespaces arrays continuations
9 : number-of-requests 1 ;
11 : server-addr ( -- addr ) "127.0.0.1" 7777 <inet4> ;
13 : server-loop ( server -- )
20 [ read1 write1 flush ] times
21 counter get count-down
24 ] curry "Client handler" spawn drop server-loop ;
26 : simple-server ( -- )
28 server-addr ascii <server> dup "server" set [
33 : simple-client ( -- )
37 [ CHAR: a dup write1 flush read1 assert= ] times
38 counter get count-down
47 dup pprint " clients: " write [
48 dup 2 * <count-down> counter set
49 [ simple-server ] "Simple server" spawn drop
51 [ [ simple-client ] "Simple client" spawn drop ] times
59 MAIN: socket-benchmarks