From 1572132374099eb2e80371c5dc16f1e33ea7fbe4 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 6 Apr 2014 22:00:39 +0900 Subject: [PATCH] Defaulting max net server threads to CHIBI_NET_SERVER_MAX_THREADS env var. If set to 1, no separate threads are used. --- lib/chibi/net/server.scm | 11 ++++++++++- lib/chibi/net/server.sld | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/chibi/net/server.scm b/lib/chibi/net/server.scm index 48bce643..be569155 100644 --- a/lib/chibi/net/server.scm +++ b/lib/chibi/net/server.scm @@ -30,7 +30,13 @@ (define (run-net-server listener-or-addr handler . o) (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) (log-debug "net-server: accepting request:" count) (let ((ports @@ -61,6 +67,9 @@ (cond ((not sock+addr) (serve count)) + ((= 1 max-requests) + (run (car sock+addr) (cadr sock+addr) count) + (serve (+ 1 count))) (else (thread-start! (make-thread diff --git a/lib/chibi/net/server.sld b/lib/chibi/net/server.sld index 77e126e4..17632918 100644 --- a/lib/chibi/net/server.sld +++ b/lib/chibi/net/server.sld @@ -1,5 +1,6 @@ (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) (include "server.scm"))