/// <summary> /// Try to cancel the <see cref="IPromise"/> and log if <paramref name="logger"/> is not <c>null</c> in case this fails. /// </summary> /// <param name="p"></param> /// <param name="logger"></param> public static void TryCancel(IPromise p, IInternalLogger logger) { if (!p.TrySetCanceled() && logger is object) { logger.FailedToMarkAPromiseAsCancel(p); } }