Questions about the Backend Interface

linas@linas.org linas@linas.org
Tue, 6 Mar 2001 15:37:08 -0600 (CST)


It's been rumoured that Derek Atkins said:
> 
> <linas@linas.org> writes:
> 
> > I think I want to retract some of my comments.  By default, when the gui
> > calls xaccTransRollback(), it will merely restore the data that was
> > previously cached in the engine. And should mostly be enough: its highly
> > unlikely that some other user changed the very same transaction, so its
> > a waste of bandwidth to have to double-check with the server.  
> 
> Ok, so the rollback method is just an 'unlock'.  Ok.

Only if the begin method was a lock.  

For the postgres backend, its all 'atomic': when the gui calls 
xaccTransBeginEdit, its a no-op.  When it calls xaccTransCommitEdit(),
it locks, writes data, unlocks.  A deadlock can't happen, since a lock
is never held outside the scope of the backend. (i.e. all locks are
released before the backend returns to the engine/gui).

--linas