Hey guys, I have occaision to use my gnucash files in multiple locations and maintain multiple copies of the files all kept up-to-date by various methods that aren't really important.
What is important is that I sometimes leave a file open at my main
machine but want to edit a copy of the file elsewhere. In order to
ensure my local copy is up-to-date and I don't end up with an
inconsistent state, I kill my running instance remotely and update my
files before editting. This works fine but leaves me with file locks
hanging around.
Because of autosave, this really isn't a danger and in fact, there is
no need to keep the file lock hanging around in the case of TERM or
INT. In all likelyhood, the file is already saved and a properly
handled TERM or INT could just close the file and drop the locks and
exit nicely instead of dying outright.
I would like to fix this by the following:
Set a couple of signal handlers in gnucash-bin.c in the two
inner-main* functions. These signal handlers would catch both TERM and
INT and do one of two things:
In the case of the book being in a saved state (I'm cueing off
the gnc_file_new() code form gnc_file.c) close everything nicely
and exit.
In the case the book is not closed, save an emergency copy* of the
file and then exit.
Any thoughts on this? ISTM a nicer way to handle this situation and
may be useful in the case of someone shutting down the system and not
realising that they have a gnucash file open in another workspace, for
example.
A
* maybe some day we could check for these emergency copies and handle
that situation on startup...
signature.asc
Description: Digital signature
_______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
