/// <summary> /// Handles received <see cref="ActivityStoppingRequest"/> messages. /// </summary> /// <param name="request">The request message.</param> /// <returns>The reply message.</returns> private async Task <ActivityStoppingReply> ActivityStoppingRequest(ActivityStoppingRequest request) { await SyncContext.Clear; ActivityBase activity; lock (idToActivity) { if (idToActivity.TryGetValue(request.ContextId, out activity)) { idToActivity.Remove(request.ContextId); } else { activity = null; } } activity?.CancellationTokenSource.Cancel(); return(await Task.FromResult(new ActivityStoppingReply())); }
/// <summary> /// Handles received <see cref="ActivityStoppingRequest"/> messages. /// </summary> /// <param name="client">The receiving Cadence client.</param> /// <param name="request">The request message.</param> /// <returns>The reply message.</returns> private static async Task <ActivityStoppingReply> ActivityStoppingRequest(CadenceClient client, ActivityStoppingRequest request) { lock (syncLock) { if (idToActivity.TryGetValue(new ActivityKey(client, request.ContextId), out var activity)) { activity.CancellationTokenSource.Cancel(); } } return(await Task.FromResult(new ActivityStoppingReply())); }