diff --git a/src/benchmark/PingPong/ClientAsyncActor.cs b/src/benchmark/PingPong/ClientAsyncActor.cs index 4ab606fc77a..f3ede7b853c 100644 --- a/src/benchmark/PingPong/ClientAsyncActor.cs +++ b/src/benchmark/PingPong/ClientAsyncActor.cs @@ -19,7 +19,7 @@ public ClientAsyncActor(IActorRef actor, long repeat, TaskCompletionSource { var received = 0L; var sent = 0L; - Receive(async m => + ReceiveAsync(async m => { received++; if (sent < repeat) diff --git a/src/core/Akka.MultiNodeTestRunner.Shared/Reporting/TestRunCoordinator.cs b/src/core/Akka.MultiNodeTestRunner.Shared/Reporting/TestRunCoordinator.cs index 4e27cc862bd..8136cd169f7 100644 --- a/src/core/Akka.MultiNodeTestRunner.Shared/Reporting/TestRunCoordinator.cs +++ b/src/core/Akka.MultiNodeTestRunner.Shared/Reporting/TestRunCoordinator.cs @@ -112,11 +112,11 @@ private void SetReceive() _currentSpecRunActor.Forward(message); }); Receive(spec => ReceiveBeginSpecRun(spec)); - Receive(spec => ReceiveEndSpecRun(spec)); + ReceiveAsync(spec => ReceiveEndSpecRun(spec)); Receive(state => Sender.Tell(TestRunData.Copy(TestRunPassed(TestRunData)))); Receive(messages => AddSubscriber(messages)); Receive(messages => RemoveSubscriber(messages)); - Receive(async run => + ReceiveAsync(async run => { //clean up the current spec, if it hasn't been done already if (_currentSpecRunActor != null) diff --git a/src/core/Akka.Remote/EndpointManager.cs b/src/core/Akka.Remote/EndpointManager.cs index a660c40e371..956a2cdf86f 100644 --- a/src/core/Akka.Remote/EndpointManager.cs +++ b/src/core/Akka.Remote/EndpointManager.cs @@ -470,18 +470,21 @@ private void Receiving() * those results will then be piped back to Remoting, who waits for the results of * listen.AddressPromise. * */ - Receive(listen => Listens.ContinueWith(listens => + Receive(listen => { - if (listens.IsFaulted) + Listens.ContinueWith(listens => { - return new ListensFailure(listen.AddressesPromise, listens.Exception); - } - else - { - return new ListensResult(listen.AddressesPromise, listens.Result); - } - }, CancellationToken.None, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default) - .PipeTo(Self)); + if (listens.IsFaulted) + { + return new ListensFailure(listen.AddressesPromise, listens.Exception); + } + else + { + return new ListensResult(listen.AddressesPromise, listens.Result); + } + }, CancellationToken.None, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default) + .PipeTo(Self); + }); Receive(listens => { diff --git a/src/core/Akka.Tests/Actor/ActorCellSpec.cs b/src/core/Akka.Tests/Actor/ActorCellSpec.cs index b57d98fbc69..09e35a5fb04 100644 --- a/src/core/Akka.Tests/Actor/ActorCellSpec.cs +++ b/src/core/Akka.Tests/Actor/ActorCellSpec.cs @@ -32,7 +32,7 @@ public class DummyAsyncActor : ReceiveActor { public DummyAsyncActor(AutoResetEvent autoResetEvent) { - Receive(async m => + ReceiveAsync(async m => { await Task.Delay(500); autoResetEvent.Set(); diff --git a/src/core/Akka.Tests/Dispatch/AsyncAwaitSpec.cs b/src/core/Akka.Tests/Dispatch/AsyncAwaitSpec.cs index f9f2ac5ed49..2a2cd9659f0 100644 --- a/src/core/Akka.Tests/Dispatch/AsyncAwaitSpec.cs +++ b/src/core/Akka.Tests/Dispatch/AsyncAwaitSpec.cs @@ -23,7 +23,7 @@ public ReceiveTimeoutAsyncActor() { _replyTo.Tell("GotIt"); }); - Receive(async s => + ReceiveAsync(async s => { _replyTo = Sender; @@ -36,7 +36,7 @@ class AsyncActor : ReceiveActor { public AsyncActor() { - Receive(async s => + ReceiveAsync(async s => { await Task.Yield(); await Task.Delay(TimeSpan.FromMilliseconds(100)); @@ -57,7 +57,7 @@ public SuspendActor() { state = 1; }); - Receive(async m_ => + ReceiveAsync(async m_ => { Self.Tell("change"); await Task.Delay(TimeSpan.FromSeconds(1)); @@ -75,7 +75,7 @@ public class AsyncAwaitActor : ReceiveActor { public AsyncAwaitActor() { - Receive(async _ => + ReceiveAsync(async _ => { var sender = Sender; var self = Self; @@ -112,7 +112,7 @@ public class Asker : ReceiveActor { public Asker(IActorRef other) { - Receive(async _ => + ReceiveAsync(async _ => { var sender = Sender; var self = Self; @@ -189,7 +189,7 @@ public class AsyncExceptionActor : ReceiveActor public AsyncExceptionActor(IActorRef callback) { _callback = callback; - Receive(async _ => + ReceiveAsync(async _ => { await Task.Yield(); ThrowException(); @@ -374,7 +374,7 @@ public class AsyncExceptionCatcherActor : ReceiveActor public AsyncExceptionCatcherActor() { - Receive(async m => + ReceiveAsync(async m => { _lastMessage = m; try @@ -410,7 +410,7 @@ public class AsyncFailingActor : ReceiveActor { public AsyncFailingActor() { - Receive(async m => + ReceiveAsync(async m => { ThrowException(); }); @@ -443,7 +443,7 @@ public class AsyncPipeToDelayActor : ReceiveActor { public AsyncPipeToDelayActor() { - Receive(async msg => + ReceiveAsync(async msg => { Task.Run(() => { @@ -460,7 +460,7 @@ public class AsyncReentrantActor : ReceiveActor { public AsyncReentrantActor() { - Receive(async msg => + ReceiveAsync(async msg => { var sender = Sender; Task.Run(() => diff --git a/src/core/Akka.Tests/Routing/TailChoppingSpec.cs b/src/core/Akka.Tests/Routing/TailChoppingSpec.cs index 353ea6d4163..cf46db4ffbc 100644 --- a/src/core/Akka.Tests/Routing/TailChoppingSpec.cs +++ b/src/core/Akka.Tests/Routing/TailChoppingSpec.cs @@ -25,7 +25,7 @@ class TailChopTestActor : ReceiveActor public TailChopTestActor(int sleepTime) { - Receive(async command => + ReceiveAsync(async command => { switch (command) { diff --git a/src/core/Akka/Actor/ReceiveActor.cs b/src/core/Akka/Actor/ReceiveActor.cs index c3ae9f32e91..b69b0669981 100644 --- a/src/core/Akka/Actor/ReceiveActor.cs +++ b/src/core/Akka/Actor/ReceiveActor.cs @@ -110,7 +110,13 @@ private PartialAction CreateNewHandler(Action configure) return newHandler; } - protected void Receive(Func handler) + [Obsolete("Use ReceiveAsync instead. This method will be removed in future versions")] + protected void Receive(Func handler) + { + ReceiveAsync(handler); + } + + protected void ReceiveAsync(Func handler) { EnsureMayConfigureMessageHandlers(); _matchHandlerBuilders.Peek().Match( m =>