On Sun, 19 Dec 2021 17:50:11 +0100, Jacob Jozef <jos.k...@gmail.com> wrote:
>I start a thread printing a file. When the file will be very long (say >50 GB) the thread takes too much time and I kill it when it takes >more time than I want to permit. Outside the thread I clean up. >Closing the output-port before deleting the file takes much time. But >to my surprise I can delete the file before closing the port, which >hardly takes time. It will take less time to stop the thread if you work line by line, or in small(ish) groups of lines, and flush the output port each time you go back for more input. As for deleting the file, all you have done is remove the directory entry ... the file itself won't go away until the last open handle on it is closed. That particular behavior /is the same/ in Windows and Unix/Linux. >After deleting the file, the port remains open, but writing to it does >nothing. Correct? No. Your program still has an open handle to the file and it is still reading from it. Only the file's directory entry is gone. You need to close the open file handle in your program in order to truly delete the file. Depending on your code, simply killing the thread may not do that. >Thanks, Jos Hope this helps, George -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/2h10sgt81h7nim2ps3dfak2te00m3724hv%404ax.com.