Skip to content

Commit

Permalink
Reduce thread usage by removing a possible unneeded Task.Run
Browse files Browse the repository at this point in the history
  • Loading branch information
adamhathcock committed Jul 25, 2024
1 parent 02f75c7 commit 30f9145
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 25 deletions.
5 changes: 1 addition & 4 deletions src/Speckle.Core/Transports/SQLite.cs
Original file line number Diff line number Diff line change
Expand Up @@ -281,10 +281,7 @@ public override string ToString()
/// Awaits untill write completion (ie, the current queue is fully consumed).
/// </summary>
/// <returns></returns>
public async Task WriteComplete()
{
await Utilities.WaitUntil(() => WriteCompletionStatus, 500).ConfigureAwait(false);
}
public async Task WriteComplete() => await Utilities.WaitUntil(() => WriteCompletionStatus, 500).ConfigureAwait(false);

/// <summary>
/// Returns true if the current write queue is empty and comitted.
Expand Down
15 changes: 1 addition & 14 deletions src/Speckle.Core/Transports/Utilities.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
using System;
using System.Threading.Tasks;
using Speckle.Core.Logging;

namespace Speckle.Core.Transports;

public static class Utilities
Expand All @@ -11,21 +7,12 @@ public static class Utilities
/// </summary>
/// <param name="condition"></param>
/// <param name="frequency"></param>
/// <param name="timeout"></param>
/// <returns></returns>
public static async Task WaitUntil(Func<bool> condition, int frequency = 25, int timeout = -1)
public static async Task WaitUntil(Func<bool> condition, int frequency = 25)
{
var waitTask = Task.Run(async () =>
{
while (!condition())
{
await Task.Delay(frequency).ConfigureAwait(false);
}
});

if (waitTask != await Task.WhenAny(waitTask, Task.Delay(timeout)).ConfigureAwait(false))
{
throw new SpeckleException("Process timed out", new TimeoutException());
}
}
}
9 changes: 2 additions & 7 deletions src/Speckle.Transports.MongoDB/MongoDB.cs
Original file line number Diff line number Diff line change
Expand Up @@ -146,18 +146,13 @@ internal void DeleteObject(string hash)
/// Awaits until write completion (ie, the current queue is fully consumed).
/// </summary>
/// <returns></returns>
public async Task WriteComplete()
{
public async Task WriteComplete() =>
await Utilities
.WaitUntil(
() =>
{
return GetWriteCompletionStatus();
},
GetWriteCompletionStatus,
500
)
.ConfigureAwait(false);
}

/// <summary>
/// Returns true if the current write queue is empty and committed.
Expand Down

0 comments on commit 30f9145

Please sign in to comment.