Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -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)