server.rkt is done, with exception of testing. Moving on to client.rkt

This commit is contained in:
Ibrahim Mkusa 2017-04-09 15:19:57 -04:00
parent f56f1cc46d
commit ba3f6821f5
2 changed files with 18 additions and 6 deletions

View File

@ -12,6 +12,8 @@
;(define guard (make-custodian (current-custodian)))
;(current-custodian guard)
;; reads values continously from stdin and redisplays them
;;;;;; NOT IN USE ;;;;;;;
(define (read-loop)
(display (read-line))
(display "\n")

View File

@ -22,11 +22,15 @@
(lambda ()
(semaphore-wait messages-s)
(semaphore-wait threads-s)
(map (lambda (thread-descriptor)
()))))
(define can-i-broadcast (make-semaphore 1))
(if (not (null? messages))
(begin (map (lambda (thread-descriptor)
(thread-send thread-descriptor (first messages))))
(set! messages (rest messages))
)
(display "No message to display\n") ; for later create file port for errors and save error messages to that file
)
(semaphore-post threads-s)
(semaphore-post messages-s)))
;;
@ -44,7 +48,13 @@
(define (loop)
(accept-and-handle listener)
(loop))
(thread loop))
(thread loop)
;; Create a thread whose job is to simply call broadcast iteratively
(thread (lambda ()
(let loopb []
broadcast
(sleep 10) ;; sleep for 10 seconds between broadcasts
(loopb)))))
(lambda ()
(displayln "\nGoodbye, shutting down all services\n")
(custodian-shutdown-all main-cust)))