The tee could attempt to kill the sender after the limit is reached,
The problem then is how tee finds out the pid of the producer process?
or simply refuse to copy to output.
It could, but then both processes might never end. Even if the producer process will eventually reach a natural end, it will take far longer, because of all the buffering and handshaking involved in the pipe.
if Windows tries "naive" error handling routines when you close the incoming handle.
If the producer application is just ignoring write failures, then there doesn't appear to be any 'naive error handling" involved. Indeed, the reason the cpu usage climbs after the pipe is severed, is because the producer application starts running much more quickly. As there is no buffering and handshaking involved, in the absence of any other limiting factors, its write loop just runs much more quickly than if the writes were succeeding.
The problem is it might never finish.
The nice thing about the piped-open overseer process is that it covers pretty much every eventuality. Save the possibility that the producer process stops writing, but doesn't close the pipe or terminate, before it reaches the limit specified in the overseer. Of course that can also be handled using a thread or can_read.
In reply to Re^3: Windows-specific: Limiting output of created files
by BrowserUk
in thread Windows-specific: Limiting output of created files
by rovf
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |