mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 13:49:17 +02:00
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:
parent
2d6940182c
commit
1572132374
2 changed files with 12 additions and 2 deletions
|
@ -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
|
||||||
|
|
|
@ -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"))
|
||||||
|
|
Loading…
Add table
Reference in a new issue