mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +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)
|
||||
(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
|
||||
|
|
|
@ -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"))
|
||||
|
|
Loading…
Add table
Reference in a new issue