Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,34 @@
|
|||
(require 'sequences)
|
||||
(require 'tasks)
|
||||
|
||||
;; inter-tasks message : (op-code . data)
|
||||
(define (is-message? op message)
|
||||
(and message (equal? op (first message))))
|
||||
|
||||
;; reader task
|
||||
(define (reader infile )
|
||||
(wait S)
|
||||
(define message (semaphore-pop S))
|
||||
(when (is-message? 'count message ) (writeln 'reader-> message) (task-stop-all))
|
||||
|
||||
(if (first infile) ;; not EOF
|
||||
(set! message (cons 'write (next infile)))
|
||||
(set! message (list 'reader-count-please)))
|
||||
|
||||
(semaphore-push S message)
|
||||
(signal S)
|
||||
infile)
|
||||
|
||||
(define (writer count)
|
||||
(wait S)
|
||||
(define message (semaphore-pop S))
|
||||
(when (is-message? 'write message )
|
||||
(writeln (rest message))
|
||||
(set! count (1+ count))
|
||||
(set! message (cons 'ack count)))
|
||||
|
||||
(when (is-message? 'reader-count-please message )
|
||||
(set! message (cons 'count count)))
|
||||
(semaphore-push S message)
|
||||
(signal S)
|
||||
count)
|
||||
Loading…
Add table
Add a link
Reference in a new issue