]> git.jsancho.org Git - gacela.git/commitdiff
(no commit message)
authorjsancho <devnull@localhost>
Thu, 7 Jul 2011 19:19:44 +0000 (19:19 +0000)
committerjsancho <devnull@localhost>
Thu, 7 Jul 2011 19:19:44 +0000 (19:19 +0000)
src/gacela_server.scm

index 548488efcb637ed8517931f44f0f48883711e8c2..a95ec9d50d4497e707a62bdb0228c3cd64981bf8 100644 (file)
@@ -17,6 +17,7 @@
 
 (define start-server #f)
 (define check-connections #f)
+(define eval-from-clients #f)
 (define stop-server #f)
 
 (let ((server-socket #f) (clients '()))
                 (lambda () (set! clients (cons (accept server-socket) clients)))
                 (lambda (key . args) #f))))
 
+  (set! eval-from-clients
+       (lambda ()
+         (for-each
+          (lambda (cli)
+            (let ((sock (car cli)))
+              (cond ((char-ready? sock)
+                     (catch #t
+                            (lambda () (eval (read sock)))
+                            (lambda (key . args) #f))))))
+          clients)))
+
   (set! stop-server
        (lambda ()
-         (cond (server-socket (close server-socket) (set! server-socket #f)))
\ No newline at end of file
+         (cond (server-socket
+                (close server-socket)
+                (set! server-socket #f)))
+         (for-each (lambda (cli) (close (car cli))) clients)
+         (set! clients '()))))