summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2016-09-08 15:00:00 +0200
committerAndy Wingo <wingo@pobox.com>2016-09-08 15:02:09 +0200
commit985df09c94f2f47f2efc6ee8ff990424c49838ee (patch)
treecbb9550a988cae4435ae675c5117ce96bc646b98 /examples
parentEnable remote fiber wakeup (diff)
downloadguile-fibers-985df09c94f2f47f2efc6ee8ff990424c49838ee.tar.gz
Quit the scheduler when there is nothing left to do
* fibers/internal.scm: Detect when there is nothing left to run, and stop the scheduler in that case. * examples/ping-client.scm (client-loop): * examples/memcached-client.scm (client-loop): Remove exit call, as we will exit when needed.
Diffstat (limited to 'examples')
-rw-r--r--examples/memcached-client.scm8
-rw-r--r--examples/ping-client.scm8
2 files changed, 2 insertions, 14 deletions
diff --git a/examples/memcached-client.scm b/examples/memcached-client.scm
index 3b6e1ec..d9d0330 100644
--- a/examples/memcached-client.scm
+++ b/examples/memcached-client.scm
@@ -109,10 +109,7 @@
(connect port (addrinfo:addr addrinfo))
port))
-(define *active-clients* 0)
-
(define (client-loop addrinfo n num-connections)
- (set! *active-clients* (1+ *active-clients*))
(let ((port (connect-to-server addrinfo))
(key (string-append "test-" (number->string n))))
(let lp ((m 0))
@@ -126,10 +123,7 @@
(unless (equal? (item-bv item) v)
(server-error port "Bad response: ~A (expected ~A)" (item-bv item) v))
(lp (1+ m))))))
- (close-port port))
- (set! *active-clients* (1- *active-clients*))
- (when (zero? *active-clients*)
- (exit 0)))
+ (close-port port)))
(define (run-memcached-test num-clients num-connections)
;; The getaddrinfo call blocks, unfortunately. Call it once before
diff --git a/examples/ping-client.scm b/examples/ping-client.scm
index 6b8dd79..afbfd0d 100644
--- a/examples/ping-client.scm
+++ b/examples/ping-client.scm
@@ -38,10 +38,7 @@
(connect port (addrinfo:addr addrinfo))
port))
-(define *active-clients* 0)
-
(define (client-loop addrinfo n num-connections)
- (set! *active-clients* (1+ *active-clients*))
(let ((port (connect-to-server addrinfo))
(test (string-append "test-" (number->string n))))
(let lp ((m 0))
@@ -54,10 +51,7 @@
(close-port port)
(error "Bad response: ~A (expected ~A)" response test))
(lp (1+ m)))))
- (close-port port))
- (set! *active-clients* (1- *active-clients*))
- (when (zero? *active-clients*)
- (exit 0)))
+ (close-port port)))
(define (run-ping-test num-clients num-connections)
;; The getaddrinfo call blocks, unfortunately. Call it once before