From 19d01ae588407d7aa89d96ff424665dda70737c4 Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Fri, 2 Oct 2015 13:58:23 -0700 Subject: [PATCH] removed all instances of TaskContinuationOptions.AttachedToParent per #1346 --- src/core/Akka.FSharp/FsApi.fs | 2 +- src/core/Akka.Persistence/Journal/AsyncWriteJournal.cs | 2 +- src/core/Akka.Remote/Transport/AkkaProtocolTransport.cs | 3 ++- .../Akka.Remote/Transport/ThrottleTransportAdapter.cs | 8 +++----- src/core/Akka/Actor/Futures.cs | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/core/Akka.FSharp/FsApi.fs b/src/core/Akka.FSharp/FsApi.fs index 7044cc60d22..0ba9d0b44e3 100644 --- a/src/core/Akka.FSharp/FsApi.fs +++ b/src/core/Akka.FSharp/FsApi.fs @@ -84,7 +84,7 @@ module Actors = /// tracked by actorRef and awaits for response send back from corresponding actor. /// let ( = - tell.Ask(msg).ContinueWith(Func<_,'Message>(tryCast), TaskContinuationOptions.AttachedToParent|||TaskContinuationOptions.ExecuteSynchronously) + tell.Ask(msg).ContinueWith(Func<_,'Message>(tryCast), TaskContinuationOptions.ExecuteSynchronously) |> Async.AwaitTask /// Pipes an output of asynchronous expression directly to the recipients mailbox. diff --git a/src/core/Akka.Persistence/Journal/AsyncWriteJournal.cs b/src/core/Akka.Persistence/Journal/AsyncWriteJournal.cs index 20bc9cd3a9a..e57382a3a1c 100644 --- a/src/core/Akka.Persistence/Journal/AsyncWriteJournal.cs +++ b/src/core/Akka.Persistence/Journal/AsyncWriteJournal.cs @@ -15,7 +15,7 @@ namespace Akka.Persistence.Journal { public abstract class AsyncWriteJournal : WriteJournalBase, IAsyncRecovery { - private static readonly TaskContinuationOptions _continuationOptions = TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.AttachedToParent; + private static readonly TaskContinuationOptions _continuationOptions = TaskContinuationOptions.ExecuteSynchronously; protected readonly bool CanPublish; private readonly PersistenceExtension _extension; private readonly IActorRef _resequencer; diff --git a/src/core/Akka.Remote/Transport/AkkaProtocolTransport.cs b/src/core/Akka.Remote/Transport/AkkaProtocolTransport.cs index 8b5916189d9..1a78ccc23af 100644 --- a/src/core/Akka.Remote/Transport/AkkaProtocolTransport.cs +++ b/src/core/Akka.Remote/Transport/AkkaProtocolTransport.cs @@ -891,8 +891,9 @@ private State HandleTimers(AssociationHandl private void ListenForListenerRegistration(TaskCompletionSource readHandlerSource) { + var self = Self; readHandlerSource.Task.ContinueWith(rh => new HandleListenerRegistered(rh.Result), - TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.AttachedToParent).PipeTo(Self); + TaskContinuationOptions.ExecuteSynchronously).PipeTo(self); } private Task NotifyOutboundHandler(AssociationHandle wrappedHandle, diff --git a/src/core/Akka.Remote/Transport/ThrottleTransportAdapter.cs b/src/core/Akka.Remote/Transport/ThrottleTransportAdapter.cs index 7d709a0fc94..54c71b8cec4 100644 --- a/src/core/Akka.Remote/Transport/ThrottleTransportAdapter.cs +++ b/src/core/Akka.Remote/Transport/ThrottleTransportAdapter.cs @@ -79,16 +79,14 @@ public override Task ManagementCommand(object message) { return r.Result is SetThrottleAck; }, - TaskContinuationOptions.AttachedToParent | - TaskContinuationOptions.ExecuteSynchronously | + TaskContinuationOptions.ExecuteSynchronously & TaskContinuationOptions.OnlyOnRanToCompletion); } if (message is ForceDisassociate || message is ForceDisassociateExplicitly) { return manager.Ask(message, AskTimeout).ContinueWith(r => r.Result is ForceDisassociateAck, - TaskContinuationOptions.AttachedToParent | - TaskContinuationOptions.ExecuteSynchronously | + TaskContinuationOptions.ExecuteSynchronously & TaskContinuationOptions.OnlyOnRanToCompletion); } @@ -437,7 +435,7 @@ private Task AskModeWithDeathCompletion(IActorRef target, Thrott // internalTarget.Tell(new Unwatch(target, promiseRef)); // return SetThrottleAck.Instance; // } - //}, TaskContinuationOptions.AttachedToParent & TaskContinuationOptions.ExecuteSynchronously); + //}, TaskContinuationOptions.ExecuteSynchronously); } } diff --git a/src/core/Akka/Actor/Futures.cs b/src/core/Akka/Actor/Futures.cs index 2d2a9f2a5e4..52ab6e31389 100644 --- a/src/core/Akka/Actor/Futures.cs +++ b/src/core/Akka/Actor/Futures.cs @@ -64,7 +64,7 @@ internal static IActorRefProvider ResolveProvider(ICanTell self) private static Task Ask(ICanTell self, object message, IActorRefProvider provider, TimeSpan? timeout) { - var result = new TaskCompletionSource(TaskContinuationOptions.AttachedToParent); + var result = new TaskCompletionSource(); timeout = timeout ?? provider.Settings.AskTimeout;