New WiredTigerSessionCache::waitUntilPreparedUnitOfWorkCommitsOrAborts and WiredTigerSessionCache::notifyPreparedUnitOfWorkHasCommittedOrAborted methods:
/** * Block until any prepared transaction has either committed or aborted. * Can be interrupted. */ WiredTigerSessionCache::waitUntilUnpreparedUnitOfWorkCommitsOrAborts(OperationContext* opCtx); /** * Notify that a prepared transaction has either committed or aborted. */ WiredTigerSessionCache::notifyPreparedUnitOfWorkHasCommittedOrAborted(OperationContext* opCtx);
These use a condvar/mutex and OperationContext::waitForConditionOrInterrupt, so the wait is interruptible.