Multi-user operation (was Re: Query for splits)
Phil Longstaff
plongstaff at rogers.com
Tue Nov 14 21:27:46 EST 2006
On Sun, 2006-12-11 at 15:18 -0500, Derek Atkins wrote:
> Not only that -- you need to check whether the transaction content in the
> DB is "newer" than the cache in the engine. E.g. in a multi-user situation
> one user may have modified the contents of a transaction, so when another
> user performs a 'refresh' you DO have to load the new contents into the
> engine.
>
> So.. "loaded" is not a sufficient check for "should I refresh the engine
> cache"... I'll note that we might need to modify QOF to also maintain
> an internal "last modified" tag in order to help us here.
qof_begin_edit() and qof_commit_edit() are used around a number of
operations which modify the same object. For multi-user operation, if I
edit an account, the backend should be told so that it can lock that
object. Then, if another person tries to edit it, their lock attempt
will find out that the object is locked and will only allow the person
to view the object. Otherwise, we will have synchronization problems
with people stomping on other people's changes. This also means that
when the backend attempts to lock an object, it should also refresh it.
Phil
More information about the gnucash-devel
mailing list