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