public static void CancelEverythingAndReInitialize(this ICancellationMaster cancellationMaster)
 {
     lock (cancellingLock)
     {
         cancellationMaster.CancelEverything();
         cancellationMaster.TokenSource = new CancellationTokenSource();
     }
 }
 public static void CancelEverything(this ICancellationMaster cancellationMaster)
 {
     cancellationMaster.TokenSource?.Cancel();
     cancellationMaster.TokenSource?.Dispose();
     cancellationMaster.TokenSource = null;
 }
 public static CancellationTokenSource GetCombinedSource(this ICancellationMaster cancellationMaster,
                                                         CancellationToken token)
 {
     return(CancellationTokenSource.CreateLinkedTokenSource(cancellationMaster.TokenSource.Token, token));
 }