summaryrefslogtreecommitdiff
path: root/examples/ping-server.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-02-20 20:26:29 +0100
committerAndy Wingo <wingo@pobox.com>2017-02-20 20:26:29 +0100
commit473fdc2af92387d7c4e8795b482780d328124cba (patch)
treecb1e27d293e3662c0a92f30f365b8290d29a1e82 /examples/ping-server.scm
parentAdd block-asyncs in fiber->thread resume path (diff)
downloadguile-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.scm14
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)))))