[fpc-pascal] Configuration file handling

Mark Morgan Lloyd markMLl.fpc-pascal at telemetry.co.uk
Sat Feb 16 11:36:34 CET 2013


Marco van de Voort wrote:
> In our previous episode, Mark Morgan Lloyd said:
>> If multiple, related, programs running on unix (Linux, Solaris etc.) 
>> refer to the same configuration file accessed via a TIniFile, is there 
>> any recommended "good practice" to ensure that they don't try to update 
>> it simultaneously?
>>
>> In the case that I'm thinking of, I don't anticipate e.g. multiple 
>> logins trying to write setup information at the same time
> 
> That sounds like the domain of of filelocking (fp)Flock.

Agreed. I've already subclassed TIniFile so I can do things like parsing 
array- and record-like settings, is there any way of hooking the file 
open/close to insert locks?

>> The more risky case is if there are e.g.  multiple daemons or apps trying
>> to save state when a UPS signals imminent shutdown.
> 
> Have all systems regularly write local files in something that is not
> cleared on startup.  (e.g.  change clearing /tmp to a monthly cronjob
> instead of startup) 
> 
> On startup check for crash (local file exists) and if the
> local file is newer than the server, copy and continue starting up.

Provided that it's just unimportant stuff- e.g. the visual appearance of 
a program controlling a daemon- it's probably not worth updating.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]



More information about the fpc-pascal mailing list