Justin Luster wrote:
Does anyone know what might be happening? We are only using Apache::Registry in this instance. I can’t see how a lexically scoped file handle that is being locked is not being unlocked once the process ends.

The process isn't ending if you're using Apache::Registry.

I think you'll need to

  use Fcntl qw(:flock);
  flock $FileHandle, LOCK_UN;

unless you set the Max child process config option to 1 (in which case, apache::registry would be useless).

Also, if you're using child locking like this, you can write the requesting process's PID to the .lock (or whatever) file. Then a cron job could come along and reap your .lock's if the PID is no longer running.

Then your file would only ever be locked for at most a minute.

Seems like overkill though.

Rob



Reply via email to