Compare commits

..

2 Commits

Author SHA1 Message Date
Tommaso Checchi
1ecbad991e Merge 6b1e951b64 into ec9204d381 2025-09-27 20:34:43 +02:00
Tommaso Checchi
6b1e951b64 RunOnThreadPool: fixed an issue where a cancellation could prevent returning to the main thread 2025-07-09 21:29:12 -07:00
5 changed files with 18 additions and 29 deletions

View File

@@ -5,10 +5,6 @@ updates:
directory: "/"
schedule:
interval: "weekly" # Check for updates to GitHub Actions every week
groups:
dependencies:
patterns:
- "*"
cooldown:
default-days: 14 # Wait 14 days before creating another PR for the same dependency. This will prevent vulnerability on the package impact.
ignore:

View File

@@ -101,7 +101,6 @@ jobs:
needs: [update-packagejson, build-dotnet, build-unity]
permissions:
contents: write
id-token: write # required for NuGet Trusted Publish
uses: Cysharp/Actions/.github/workflows/create-release.yaml@main
with:
commit-id: ${{ needs.update-packagejson.outputs.sha }}

View File

@@ -10,11 +10,6 @@ using UnityEditor.IMGUI.Controls;
using Cysharp.Threading.Tasks.Internal;
using System.Text;
using System.Text.RegularExpressions;
#if UNITY_6000_2_OR_NEWER
using TreeView = UnityEditor.IMGUI.Controls.TreeView<int>;
using TreeViewItem = UnityEditor.IMGUI.Controls.TreeViewItem<int>;
using TreeViewState = UnityEditor.IMGUI.Controls.TreeViewState<int>;
#endif
namespace Cysharp.Threading.Tasks.Editor
{
@@ -184,3 +179,4 @@ namespace Cysharp.Threading.Tasks.Editor
}
}

View File

@@ -66,12 +66,11 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
action();
}
finally
@@ -81,6 +80,7 @@ namespace Cysharp.Threading.Tasks
}
else
{
cancellationToken.ThrowIfCancellationRequested();
action();
}
@@ -94,12 +94,11 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
action(state);
}
finally
@@ -109,6 +108,7 @@ namespace Cysharp.Threading.Tasks
}
else
{
cancellationToken.ThrowIfCancellationRequested();
action(state);
}
@@ -122,12 +122,11 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
await action();
}
finally
@@ -137,6 +136,7 @@ namespace Cysharp.Threading.Tasks
}
else
{
cancellationToken.ThrowIfCancellationRequested();
await action();
}
@@ -150,12 +150,11 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
await action(state);
}
finally
@@ -165,6 +164,7 @@ namespace Cysharp.Threading.Tasks
}
else
{
cancellationToken.ThrowIfCancellationRequested();
await action(state);
}
@@ -178,12 +178,11 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
return func();
}
finally
@@ -194,6 +193,7 @@ namespace Cysharp.Threading.Tasks
}
else
{
cancellationToken.ThrowIfCancellationRequested();
return func();
}
}
@@ -205,23 +205,22 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
return await func();
}
finally
{
cancellationToken.ThrowIfCancellationRequested();
await UniTask.Yield();
cancellationToken.ThrowIfCancellationRequested();
}
}
else
{
cancellationToken.ThrowIfCancellationRequested();
var result = await func();
cancellationToken.ThrowIfCancellationRequested();
return result;
@@ -235,12 +234,11 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
return func(state);
}
finally
@@ -251,6 +249,7 @@ namespace Cysharp.Threading.Tasks
}
else
{
cancellationToken.ThrowIfCancellationRequested();
return func(state);
}
}
@@ -262,23 +261,22 @@ namespace Cysharp.Threading.Tasks
await UniTask.SwitchToThreadPool();
cancellationToken.ThrowIfCancellationRequested();
if (configureAwait)
{
try
{
cancellationToken.ThrowIfCancellationRequested();
return await func(state);
}
finally
{
cancellationToken.ThrowIfCancellationRequested();
await UniTask.Yield();
cancellationToken.ThrowIfCancellationRequested();
}
}
else
{
cancellationToken.ThrowIfCancellationRequested();
var result = await func(state);
cancellationToken.ThrowIfCancellationRequested();
return result;

View File

@@ -2,7 +2,7 @@
"name": "com.cysharp.unitask",
"displayName": "UniTask",
"author": { "name": "Cysharp, Inc.", "url": "https://cysharp.co.jp/en/" },
"version": "2.5.11",
"version": "2.5.10",
"unity": "2018.4",
"description": "Provides an efficient async/await integration to Unity.",
"keywords": [ "async/await", "async", "Task", "UniTask" ],