public void InDoubt(Exception e)
{
TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log;
if (etwLog.IsEnabled())
{
etwLog.MethodEnter(TraceSourceType.TraceSourceLtm, this);
}
lock (_internalEnlistment.SyncRoot)
{
if (etwLog.IsEnabled())
{
etwLog.EnlistmentInDoubt(_internalEnlistment);
}
_internalEnlistment.State.InDoubt(_internalEnlistment, e);
}
if (etwLog.IsEnabled())
{
etwLog.MethodExit(TraceSourceType.TraceSourceLtm, this);
}
}
void ISinglePhaseNotificationInternal.SinglePhaseCommit(IPromotedEnlistment singlePhaseEnlistment) { bool spcCommitted = false; _promotedEnlistment = singlePhaseEnlistment; try { _singlePhaseNotifications.SinglePhaseCommit(SinglePhaseEnlistment); spcCommitted = true; } finally { if (!spcCommitted) { SinglePhaseEnlistment.InDoubt(); } } }