(let ((chan (open-vector '(buffering: #f))))
(thread-start!
(make-thread
(lambda ()
(write "Value" chan)
(pp "Write done"))))
(thread-start!
(make-thread
(lambda ()
(thread-sleep! 1)
(pp "Start reading")
(pp (read chan)))))
(thread-sleep! 5))
My expectation:
Outputs:
"Start reading"
"Write done" or "Value", in any order.
Result for 4.6.3, osx 10.6.7:
Outputs:
"Write done"
"Start reading"
"Value"
Obviously, the "read" option doesn't block the spawned thread even "buffering" is set to #f.
Did I misunderstand it?