in reply to Re: (bbfu) Re: using loop/array to write files
in thread using loop/array to write files

The file lock does not good there. You have the following race:
  1. process 1 starts up and decides what file to create
  2. process 2 starts up and decides to create the same file.
  3. process 1 creates the file, and locks it.
  4. process 2 opens said file and tries to lock it.
  5. process 1 writes the file and exits.
  6. process 2 finally gets the file, overwrites what process 1 does and exits
The fact is that while conceptually file locking is really simple, virtually nobody gets it right in practice. What you need to do instead is have a lockfile that always exists which, before doing operations that you want protected, you open and lock.

That is the lock has to come before the process begins making any sort of decisions. And generally that means that you don't want to lock the file(s) you are going to work with.

  • Comment on Re (tilly) 3: using loop/array to write files