(mutex-lock! miau) (thread-start! (make-thread (lambda () (let-values (((in out) (create-pipe))) (set! callback_fd out) (let ((in* (open-input-file* in))) (condition-variable-signal! ready) (print "entering the loop") (let loop () (print "starting to sit on the pipe") (thread-wait-for-i/o! in) (print "zzZzZzz !!! whoa whats on?") (read-char in*) (print "aha ok got that...") (print "dont speak to me till im finished!!") (mutex-lock! miau) (thread-sleep! 1) (print "done!") (condition-variable-signal! ready) (loop))))))) (mutex-unlock! miau ready)