Skip to content

Commit

Permalink
Ask deadlock test added #3220
Browse files Browse the repository at this point in the history
  • Loading branch information
maxcherednik committed Jan 2, 2018
1 parent d9ddb1d commit 152d0c1
Show file tree
Hide file tree
Showing 13 changed files with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/core/Akka.Tests/Actor/AskSpec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using Nito.AsyncEx;

namespace Akka.Tests.Actor
{
Expand Down Expand Up @@ -39,9 +40,9 @@ public WaitActor(IActorRef replyActor, IActorRef testActor)
_testActor = testActor;
}

private IActorRef _replyActor;
private readonly IActorRef _replyActor;

private IActorRef _testActor;
private readonly IActorRef _testActor;

protected override void OnReceive(object message)
{
Expand Down Expand Up @@ -132,6 +133,17 @@ public async Task ShouldFailWhenAskExpectsWrongType()
await Assert.ThrowsAsync<InvalidCastException>(async () => await actor.Ask<int>("answer"));
}

[Fact]
public void AskDoesNotDeadlockWhenWaitForResultInGuiApplication()
{
AsyncContext.Run(() =>
{
var actor = Sys.ActorOf<SomeActor>();
var res = actor.Ask<string>("answer").Result; // blocking on purpose
res.ShouldBe("answer");
});
}

private void Are_Temp_Actors_Removed(IActorRef actor)
{
var actorCell = actor as ActorRefWithCell;
Expand Down

0 comments on commit 152d0c1

Please sign in to comment.