On Wed, 29 Dec 1999, you wrote: 
> OTOH, you're right.  I wouldn't want to be locked out of an account
> because someone else didn't close their windows when they went to
> lunch.

The "standard" DBMS way of handling this is to lock the record being updated
and apply a transaction timer such that if the transaction is not committed by
the expiry of the timer then the DBMS backs out any updates made and releases
the record lock.

To avoid race conditions you need to single-thread access to locks. An easy safe
way of implementing this is via semaphores, because then the kernel does the
single-threading for you, and the semaphore can be used as a record lock.

I think it would be very brave to use conflict-resolution for accounting
transactions. It can become very confusing for users trying to understand what
should be happening when there is a conflict. Single-threading makes it so much
easier.

Graham

--
Graham Chapman
email: [EMAIL PROTECTED]
       [EMAIL PROTECTED]
web  : http://www.zeta.org.au/~grahamc/

--
Gnucash Developer's List 
To unsubscribe send empty email to: [EMAIL PROTECTED]

Reply via email to