Yes, that issue describes precisely my problem.
I can work around it though by just keeping the pipe open for writing all the 
time.

Thanks.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, 17 September 2019 10:10, Jon Harper <jon.harpe...@gmail.com> wrote:

> Last time I checked ( https://github.com/factor/factor/issues/1129 ),
> named pipes support wasn't ideal in factor.. Even if you don't use
> with-file-reader and call open and read directly, you won't get
> cooperative threading. You can get it from stdin and stdout because
> there's special support for that, or from sockets.
>
> Jon
>
> On Sun, Sep 15, 2019 at 10:08 AM murray.calavera--- via Factor-talk
> factor-talk@lists.sourceforge.net wrote:
>
> > I don't think that's true, if that were the case it would be constantly 
> > printing to stdout.
> > It's a fifo file created with mkfifo, as soon as data is read from it the 
> > data is no longer in the file. Fifos are automatically closed after one 
> > process(e.g. echo) writes to it, so I have to reopen it so I can echo to it 
> > multiple times.
> > But I think I worked out the problem thanks to your comment, I think it's 
> > because with-file-reader blocks without yielding.
> > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> > On Sunday, September 15, 2019 3:10 AM, Alexander Ilin ajs...@yandex.ru 
> > wrote:
> > 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
>
> 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