After a discussion with @rjsargent, I've decided that the conflicting goals of
running production applications in manual transaction mode.
allowing folks to debug gem servers in automatic transaction mode.
allowing GemServer>>doBasicTransaction: to be re-entrant.
cannot be achieved cleanly. The basic problem is that it isn't possible to tell when it is correct to abort/commit when running in automatic transaction mode. Of course, I also don't have a strong case fr needing re-entrant GemServer>>doBasicTransaction: calls, so for now they will be non-re-entrant.
After a discussion with @rjsargent, I've decided that the conflicting goals of
manual transaction mode
.automatic transaction mode
.cannot be achieved cleanly. The basic problem is that it isn't possible to tell when it is correct to abort/commit when running in
automatic transaction mode
. Of course, I also don't have a strong case fr needing re-entrant GemServer>>doBasicTransaction: calls, so for now they will be non-re-entrant.