3 ms·
Didn't even know about process substitution, had been using fifo's to achieve this!
by veltas 5y ago
Didn't even know about process substitution, had been using fifo's to achieve this!
- ogogmad 5y agoFish tries to use FIFOs to emulate process substitution, and it leads to deadlock. Not sure why. By default, Fish actually runs the processes in a strict sequence. But this is to avoid the above deadlock situation. And it therefore isn't process substitution.
- ridiculous_fish 5y agoTo be sure, fish runs external processes in parallel. It's only internal functions which are serialized against each other. I'm hoping to lift this restriction eventually. This SO answers a bit about the issues with FIFOs and fish shell. Basically it comes down to evaluating redirections before fork instead of after, which is because fish uses threads. https://stackoverflow.com/questions/61946995/ls-fifo-blocks-fish-shell/61947293#61947293 https://stackoverflow.com/questions/61946995/ls-fifo-blocks-...
- ogogmad 5y agoThanks. Love the Fish shell! Does this mean that every time you direct output to a file, like so: the_prog > the_file The output of the_prog passes into Fish first and then into the_file? Because then if the write to the_file blocks then Fish would itself get blocked.