At 09:21 PM 16/7/2003 +0200, you wrote:
Etienne Labuschagne wrote at 2003-7-16 00:48 +0200:
... The above is abbreviated, but I can send you a more verbose list with stack traces for each step. I printed out the threading.currentThread().getName()s every step to check which threads are doing what.
I am not really interested in a detailed log :-)
"Storage._transaction" is set in "tpc_begin" and reset in "tpc_abort" and "tpc_finish".
When the check "transaction is self._transaction" fails, look at "self._transaction". When is is None, then someone (maybe a different thread) called "tpc_abort" or "tpc_finish" or (not likely "tpc_begin" was not executed). When it is not None, then its value specifies the transaction that most recently executed "tpc_begin". This must be a different thread (since there is one transaction per thread and "transaction" is ours).
Dieter
Ok, I'll save you from the detailed log spam :) Thanks for the info, I'm sure it will help - my case is where self._stransaction is None so I will have a look at what my threads are up to! Etienne