[fpc-devel] How to use fpFlock?
amir at aavani.net
Tue May 6 08:38:08 CEST 2008
So what wrong is with the following code?
When running two instance of this program, *both* print "After Flock"
and wait for an input?
AssignFile (InputFile, 'Lock.txt');
WriteLn ('Before Flock');
Fpflock (InputFile, LOCK_SH);
WriteLn ('After Flock');
> flock in Linux (at least) is blocking by default unless passed with
> specific parameter.
> You can try also to create a mutex that only when removed you will
> access the procedure/function that try to write to the file, and the
> process that created the mutex is the only one that can write to that
> You of course remove it when you closed the file.
> Just an idea...
> On Fri, May 2, 2008 at 5:35 AM, amir <amir at aavani.net> wrote:
>> I have many process wanting to write in a file. Each process is going to
>> open the file as a writeonly (using Assignfile and rewrite or fpOpen with
>> o_WrOnly). But there is a risk that two processes simultaneously trying to
>> write a message in the file. I want to use fpflock to avoid this. Is it
>> possible? What I done is something like this:
>> AssignFile (OutputFile, FileName);
>> fpflock (OutputFile, LOCK_EX);
>> Rewrite (OutputFile);
>> The description of fpFlock does not say anything about the default
>> behavior of fpFlock (Is it blocking?). What I saw told me that it is not
>> Is it the correct way of using fpFlock?
>> fpc-devel maillist - fpc-devel at lists.freepascal.org
More information about the fpc-devel