From 8b2be28eb0698326536827a8e426cc85c2a5e5b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6llner?= Date: Sun, 25 Aug 2019 18:16:01 +0200 Subject: [PATCH] More troubleshooting --- Capnp.Net.Runtime/Rpc/Impatient.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Capnp.Net.Runtime/Rpc/Impatient.cs b/Capnp.Net.Runtime/Rpc/Impatient.cs index 5dfabd2..42155c6 100644 --- a/Capnp.Net.Runtime/Rpc/Impatient.cs +++ b/Capnp.Net.Runtime/Rpc/Impatient.cs @@ -31,22 +31,24 @@ namespace Capnp.Rpc var rtask = AwaitAnswer(); - // Really weird: We'd expect AwaitAnswer() to initialize a new Task instance upon each invocation. - // However, this does not seem to be always true (as indicated by CI test suite). An explanation might be - // that the underlying implementation recycles Task instances (um, really? doesn't make sense. But the - // obsevation doesn't make sense, either). - try { + // Really weird: We'd expect AwaitAnswer() to initialize a new Task instance upon each invocation. + // However, this does not seem to be always true (as indicated by CI test suite). An explanation might be + // that the underlying implementation recycles Task instances (um, really? doesn't make sense. But the + // observation doesn't make sense, either). + _taskTable.Add(rtask, promise); } catch (ArgumentException) { // Force .NET to create a new Task instance + var stask = rtask; + async Task AwaitAgain() { - return await rtask; + return await stask; } rtask = AwaitAgain();