On 10 Nov 2010, at 14:13, MegaBrutal wrote:

I should have noted this, but my "LockFile" is not a global variable.
It's a field of my object. So each object instance has its own
"LockFile", and threads create their own instance of the object.
However, they try to open the same file on the file system, but with
different file descriptors (under file descriptor, now I mean a Pascal
"file" typed variable).

That does not make any difference.

The little program that would simulate it:

var
 f, g: file;
begin
{$i+}
 assign(f, 'test.txt');
assign(g,'test.txt');
 rewrite(f,1);
 rewrite(g,1);
end.

I think it shouldn't work on any OS.

It nevertheless does.

Unless they open the file in
sharing mode, but I suppose Rewrite doesn't enable file sharing by
default.

On Unix-style OSes, Rewrite does not lock the file after opening it for writing (locking is a separate operation there).


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to