From: Paul Lutus Date: 2006-08-30T07:15:36+09:00 Subject: Re: process based locks for files Radu Spineanu wrote: > Hi, > > I have two programs accessing the same file. Both programs open and > close the file multiple times while running (for example reading it > first, and then writing it back using global functions). > > In order to avoid race conditions i was wondering if it's possible to > lock the file at the start of the running process and then unlock it at > the end. During that time the running process should be able to open and > close the file without problems. If both programs are willing to cooperate with each other, why not use a flag file, as is often done to lock and unlock various resources in Linux? This approach has the advantage of being platform-neutral and doesn't require any explicit file-locking facilities. ----------------------------------------- #!/usr/bin/ruby -w flag_file = "FLAGFILE" puts "Waiting for access ..." while FileTest.exists? flag_file sleep 1 end puts "Creating flag file ..." ff = File.open(flag_file,"w") {} puts "Processing ..." sleep 5 puts "Removing flag file ..." File.delete flag_file ----------------------------------------- There is an obvious collision possibility in this arrangement, that may or may not be an issue. -- Paul Lutus http://www.arachnoid.com