You open a file, read one line, then reopen the file and do the same again.
Since you are reopening the stream, there's always data available, thus there is no reason to yield.
 
14.09.2019, 21:04, "murray.calavera--- via Factor-talk" <factor-talk@lists.sourceforge.net>:
Hello all,
 
I'm a bit confused about how threads work with IO in factor.
 
 
This: https://docs.factorcode.org/content/article-threads.html seems to imply that functions such as readln will yield  to other threads unless data is available on a stream, but the following program only ever reads from the fifo:
 
USING: kernel threads io io.files io.encodings.utf8 ;
IN: test

: read-fifo ( -- )
    "fifo" utf8 [ readln print flush ] with-file-reader read-fifo ;

: read-stdin ( -- )
    readln print flush read-stdin ;

[ read-fifo ] "fifo-thread" spawn drop
read-stdin
 
What am I misunderstanding here?
Thanks.
Murray.
 
,,

_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

 
 
---=====---
Александр
 
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to