Make the statistician perform the shutdown after a final round of reporting.
This commit is contained in:
parent
eb4f9099a7
commit
34fc018520
|
@ -22,6 +22,7 @@
|
||||||
(define Tconn (logbook-table E "server-connections" #:column-spec '(time-seconds connection-count)))
|
(define Tconn (logbook-table E "server-connections" #:column-spec '(time-seconds connection-count)))
|
||||||
|
|
||||||
(define connection-count 0)
|
(define connection-count 0)
|
||||||
|
(define first-connection-seen? #f)
|
||||||
|
|
||||||
(define statistics-poll-interval 2000)
|
(define statistics-poll-interval 2000)
|
||||||
|
|
||||||
|
@ -34,6 +35,8 @@
|
||||||
;; (collect-garbage)
|
;; (collect-garbage)
|
||||||
(write-logbook-datum! Tmem (list (/ now 1000.0) (current-memory-use)))
|
(write-logbook-datum! Tmem (list (/ now 1000.0) (current-memory-use)))
|
||||||
(write-logbook-datum! Tconn (list (/ now 1000.0) connection-count))
|
(write-logbook-datum! Tconn (list (/ now 1000.0) connection-count))
|
||||||
|
(when (and first-connection-seen? (zero? connection-count))
|
||||||
|
(exit 0))
|
||||||
(transition s
|
(transition s
|
||||||
(send (set-timer 'statistician statistics-poll-interval 'relative)))]
|
(send (set-timer 'statistician statistics-poll-interval 'relative)))]
|
||||||
[_ #f]))
|
[_ #f]))
|
||||||
|
@ -53,14 +56,13 @@
|
||||||
|
|
||||||
(define (connection in out)
|
(define (connection in out)
|
||||||
(set! connection-count (+ connection-count 1))
|
(set! connection-count (+ connection-count 1))
|
||||||
|
(set! first-connection-seen? #t)
|
||||||
(spawn (lambda (e s)
|
(spawn (lambda (e s)
|
||||||
(match e
|
(match e
|
||||||
[(message (event _ (list (? eof-object?))) _ _)
|
[(message (event _ (list (? eof-object?))) _ _)
|
||||||
(close-input-port in)
|
(close-input-port in)
|
||||||
(close-output-port out)
|
(close-output-port out)
|
||||||
(set! connection-count (- connection-count 1))
|
(set! connection-count (- connection-count 1))
|
||||||
(when (zero? connection-count)
|
|
||||||
(exit 0))
|
|
||||||
(transition s (quit))]
|
(transition s (quit))]
|
||||||
[(message (event _ (list line)) _ _)
|
[(message (event _ (list line)) _ _)
|
||||||
(fprintf out "~a\n" line)
|
(fprintf out "~a\n" line)
|
||||||
|
|
Loading…
Reference in New Issue