Defaulting max net server threads to CHIBI_NET_SERVER_MAX_THREADS

env var.  If set to 1, no separate threads are used.
This commit is contained in:
Alex Shinn 2014-04-06 22:00:39 +09:00
parent 2d6940182c
commit 1572132374
2 changed files with 12 additions and 2 deletions

View file

@ -30,7 +30,13 @@
(define (run-net-server listener-or-addr handler . o) (define (run-net-server listener-or-addr handler . o)
(let ((listener-thunk (make-listener-thunk listener-or-addr)) (let ((listener-thunk (make-listener-thunk listener-or-addr))
(max-requests (if (pair? o) (car o) default-max-requests))) (max-requests
(or
(cond ((pair? o) (car o))
((get-environment-variable "CHIBI_NET_SERVER_MAX_THREADS")
=> string->number)
(else #f))
default-max-requests)))
(define (run sock addr count) (define (run sock addr count)
(log-debug "net-server: accepting request:" count) (log-debug "net-server: accepting request:" count)
(let ((ports (let ((ports
@ -61,6 +67,9 @@
(cond (cond
((not sock+addr) ((not sock+addr)
(serve count)) (serve count))
((= 1 max-requests)
(run (car sock+addr) (cadr sock+addr) count)
(serve (+ 1 count)))
(else (else
(thread-start! (thread-start!
(make-thread (make-thread

View file

@ -1,5 +1,6 @@
(define-library (chibi net server) (define-library (chibi net server)
(import (chibi) (chibi net) (chibi filesystem) (chibi log) (srfi 18)) (import (chibi) (chibi net) (chibi filesystem) (chibi log)
(srfi 18) (srfi 98))
(export run-net-server make-listener-thunk) (export run-net-server make-listener-thunk)
(include "server.scm")) (include "server.scm"))