Jonas Maebe wrote:
On 20/06/16 11:28, Mark Morgan Lloyd wrote:
I'm approaching a situation where up to four identical processes will be
reading and writing the same files. There will be process-level
synchronisation which should prevent clashes, but I'd still like to add
locking at the file level.
If you use sysutils.fileopen, file locking will automatically be used
based on fmShare* constants you specify:
http://www.freepascal.org/docs-html/current/rtl/sysutils/fileopen.html
I think I should have said that I needed locking at the record level,
where each record is 256 bytes. When I referred to "file" I meant that
this was the low-level storage layer, with several other layers on top
of it; records will be written and read in indeterminate order, the file
won't be written by one process and read by the rest.
Each of the four programs (assumed to be running on the same system,
i.e. no NFS etc.) will be managing its own advisory locking using shared
memory. However for cases where one of them erroneously tries to ignore
the custom advisory lock I want to be able to lock individual records in
the common file.
The file represents a mainframe disk subsystem, around which up to four
systems operated. Each system had two CPUs, with a multitasking OS.
There's a lot to go wrong...
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal