diff options
| author | Andy Wingo <wingo@pobox.com> | 2017-02-20 20:26:29 +0100 |
|---|---|---|
| committer | Andy Wingo <wingo@pobox.com> | 2017-02-20 20:26:29 +0100 |
| commit | 473fdc2af92387d7c4e8795b482780d328124cba (patch) | |
| tree | cb1e27d293e3662c0a92f30f365b8290d29a1e82 /examples/ping-server.scm | |
| parent | Add block-asyncs in fiber->thread resume path (diff) | |
| download | guile-fibers-473fdc2af92387d7c4e8795b482780d328124cba.tar.gz | |
Update examples
* examples/memcached-client.scm:
* examples/memcached-server.scm:
* examples/ping-client.scm:
* examples/ping-server.scm: Update for newest run-fibers.
Diffstat (limited to 'examples/ping-server.scm')
| -rw-r--r-- | examples/ping-server.scm | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/examples/ping-server.scm b/examples/ping-server.scm index d2873e3..cdc8519 100644 --- a/examples/ping-server.scm +++ b/examples/ping-server.scm @@ -23,19 +23,18 @@ (ice-9 rdelim) (ice-9 match)) -(define (set-nonblocking! port) - (fcntl port F_SETFL (logior O_NONBLOCK (fcntl port F_GETFL))) - (setvbuf port 'block 1024)) - (define (make-default-socket family addr port) (let ((sock (socket PF_INET SOCK_STREAM 0))) (setsockopt sock SOL_SOCKET SO_REUSEADDR 1) (fcntl sock F_SETFD FD_CLOEXEC) (bind sock family addr port) - (set-nonblocking! sock) + (fcntl sock F_SETFL (logior O_NONBLOCK (fcntl sock F_GETFL))) sock)) (define (client-loop port addr store) + (setvbuf port 'block 1024) + ;; Disable Nagle's algorithm. We buffer ourselves. + (setsockopt port IPPROTO_TCP TCP_NODELAY 1) (let loop () ;; TODO: Restrict read-line to 512 chars. (let ((line (read-line port))) @@ -50,11 +49,8 @@ (define (socket-loop socket store) (let loop () - (match (accept socket) + (match (accept socket SOCK_NONBLOCK) ((client . addr) - (set-nonblocking! client) - ;; Disable Nagle's algorithm. We buffer ourselves. - (setsockopt client IPPROTO_TCP TCP_NODELAY 0) (spawn-fiber (lambda () (client-loop client addr store)) #:parallel? #t) (loop))))) |
