Skip to content

Commit 90b72b9

Browse files
Update projects/RabbitMQ.Client/client/TaskExtensions.cs
Co-authored-by: Paulo Morgado <[email protected]>
1 parent 0d13a2c commit 90b72b9

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

projects/RabbitMQ.Client/client/TaskExtensions.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,21 @@ static async Task TimeoutAfterImplement(Task task, TimeSpan timeout)
7575
#endif
7676
}
7777

78-
public static async ValueTask TimeoutAfter(this ValueTask task, TimeSpan timeout)
78+
public static ValueTask TimeoutAfter(this ValueTask task, TimeSpan timeout)
7979
{
80-
if (false == task.IsCompletedSuccessfully)
80+
if (task.IsCompletedSuccessfully)
8181
{
82-
Task actualTask = task.AsTask();
82+
return task;
83+
}
84+
8385
#if NET6_0_OR_GREATER
84-
await actualTask.WaitAsync(timeout)
85-
.ConfigureAwait(false);
86+
return actualTask.WaitAsync(timeout);
8687
#else
88+
return TimeoutAfterImplement(task, timeout);
89+
90+
assync static ValueTask TimeoutAfterImpl(ValueTask task, TimeSpan timeout)
91+
{
92+
Task actualTask = task.AsTask();
8793
if (actualTask == await Task.WhenAny(actualTask, Task.Delay(timeout)).ConfigureAwait(false))
8894
{
8995
await actualTask.ConfigureAwait(false);
@@ -98,6 +104,7 @@ await actualTask.WaitAsync(timeout)
98104
scheduler: TaskScheduler.Default);
99105
throw new TimeoutException();
100106
}
107+
}
101108
#endif
102109
}
103110
}

0 commit comments

Comments
 (0)