savepoint - half way through fixing chain execution bug, about to move transactionOrFunction code
savepoint - chains fix presents new problem: global lock transactions in chain produces deadlock
Fixed: implementation of transaction chains completely wrong. Early
transactions in a chain would block that queue until all transactions in the
queue were completed. The chain infrastructure was located at the bottom of
the async.queue worker. This was completely wrong. It has been replaced with a
chain handler async.doWhilst just above queue insertion. There is some grubby
state management of queue length counters to ensure that a chain can't get
interrupted by a committed.stop, yet will still allow global lock transactions
to execute without deadlock.
bump version for publish