+ // We have one more transaction, which needs to be processed somewhere. If we do not
+ // a transaction in-flight, we need to push it down ourselves.
+ // If there is an in-flight transaction we will schedule this last one into a dedicated
+ // slot. Allocation slow path will check its presence and fail, the in-flight path will
+ // pick it up, submit and immediately close the chain.
+ if (inflightTx == null) {
+ processTransaction(tx);
+ delegate.close();
+ } else {
+ shutdownTx = tx;
+ }
+ } else {
+ // Nothing outstanding, we can safely shutdown
+ delegate.close();