<div>
            <div><span>I expect the reading option may block the thread with "buffering: #f".</span></div><div><span><br></span></div><div><span>For example:</span></div><div><span><div><div>(let ((chan (open-vector '(buffering: #f))))</div><div>  (thread-start!</div><div>    (make-thread</div><div>      (lambda ()</div><div>        (write "Value" chan)</div><div>        (pp "Write done"))))</div><div>  (thread-start!</div><div>    (make-thread</div><div>      (lambda ()</div><div>        (thread-sleep! 1)</div><div>        (pp "Start reading")</div><div>        (pp (read chan)))))</div><div>  (thread-sleep! 5))</div><div><br></div></div><div>My expectation:</div><div>Outputs:</div><div>"Start reading"</div><div>"Write done" or "Value", in any order.</div><div><br></div><div>Result for 4.6.3, osx 10.6.7:</div><div>Outputs:</div><div>"Write done"</div><div>"Start reading"</div><div>"Value"</div><div><br></div><div>Obviously, the "read" option doesn't block the spawned thread even "buffering" is set to #f.</div><div>Did I misunderstand it?</div>
                </span>
                <span><br>-- <br>Meng Zhang<br>Sent with <a href="http://www.sparrowmailapp.com/?sig">Sparrow</a><br></span>
            </div>
        </div>