I have a question about pausing / resuming a long running program. I'll use Python in this example, but it could be for any programming language really.
Let's say I want to sum up all the numbers to a billion for example
results = []
for i in range(1000000000):
results.append(i + i*2)
with open('./sum.txt', 'w') as outfile:
for r in results:
output.write(r+'\n')
outfile.close()
That's a very simple program and in the end I would like to write the values out to a file.
Let's say I start this script and it's taking hours and I want to shut down my computer. Now I could wait but what are some ways that I could stop this process while keeping the data in tact?
I've though about opening the file before the loop and inside the loop, instead of appending to the results list, I could just write [append] to the opened file but that seems like still if I quit the program, the file never closes and the data could get corrupted. Even if I just write to the file in the loop then directly close the file after the write operation, couldn't that still cause data corruption or something?
What are some ways that I could tackle a problem like this. Where I'd like to be able to stop a program and later, restart the program and it could continue from where it left off?
If you have a long running script that does most of the work on the inner part of a loop.
@MisterMiyagi Can you please specify what your actual question is? Creating safe-points inside the loop is the way to go if you want to preserve the loop's state. Whether file I/O is safe against corruption doesn't depend on your application so much as operating/file system. In Linux, it's safe to write to a temporary file, then rename it; files are also closed automatically when a program exits.
I was more interested in a safe place inside the loop. What are some recommended ways to do that in a program that's structured like the one above.