Exemple #1
0
        /// <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()));
        }
Exemple #2
0
        /// <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()));
        }