Skip to content

Commit 3e51c4e

Browse files
committed
Fix schedulers for running processes, clean up tasks, and more
1 parent d6fbf47 commit 3e51c4e

File tree

105 files changed

+6137
-1272
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+6137
-1272
lines changed

Unity.Editor.Tasks.sln

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "helpers", "helpers", "{93CD
1313
EndProject
1414
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestBase", "tests\Helpers\TestBase\TestBase.csproj", "{93F4BC16-1A50-4DB1-8FA3-78FCDB54B365}"
1515
EndProject
16+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Helper.CommandLine", "tests\Helpers\Helper.CommandLine\Helper.CommandLine.csproj", "{9A8F0974-A7AE-433B-8C49-5DBD30B0E479}"
17+
EndProject
1618
Global
1719
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1820
Debug|Any CPU = Debug|Any CPU
@@ -31,13 +33,18 @@ Global
3133
{93F4BC16-1A50-4DB1-8FA3-78FCDB54B365}.Debug|Any CPU.Build.0 = Debug|Any CPU
3234
{93F4BC16-1A50-4DB1-8FA3-78FCDB54B365}.Release|Any CPU.ActiveCfg = Release|Any CPU
3335
{93F4BC16-1A50-4DB1-8FA3-78FCDB54B365}.Release|Any CPU.Build.0 = Release|Any CPU
36+
{9A8F0974-A7AE-433B-8C49-5DBD30B0E479}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37+
{9A8F0974-A7AE-433B-8C49-5DBD30B0E479}.Debug|Any CPU.Build.0 = Debug|Any CPU
38+
{9A8F0974-A7AE-433B-8C49-5DBD30B0E479}.Release|Any CPU.ActiveCfg = Release|Any CPU
39+
{9A8F0974-A7AE-433B-8C49-5DBD30B0E479}.Release|Any CPU.Build.0 = Release|Any CPU
3440
EndGlobalSection
3541
GlobalSection(SolutionProperties) = preSolution
3642
HideSolutionNode = FALSE
3743
EndGlobalSection
3844
GlobalSection(NestedProjects) = preSolution
3945
{452FEC2C-09AD-4FB5-965C-29D1FB872A4E} = {13E9D517-C9FB-4DBE-B4B2-10748698E27E}
4046
{93F4BC16-1A50-4DB1-8FA3-78FCDB54B365} = {93CD1CE7-1B0E-47A0-ADC3-F30702D65605}
47+
{9A8F0974-A7AE-433B-8C49-5DBD30B0E479} = {93CD1CE7-1B0E-47A0-ADC3-F30702D65605}
4148
EndGlobalSection
4249
GlobalSection(ExtensibilityGlobals) = postSolution
4350
SolutionGuid = {11F9BFE4-27A0-4CCF-A3C1-3683D75126A6}

common/unityreferences.targets

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33

4-
<PropertyGroup Condition=" '$([System.IO.Path]::GetFileName($(MSBuildProjectDirectory)))' == 'Editor' ">
5-
<DefineConstants>UNITY_EDITOR</DefineConstants>
6-
</PropertyGroup>
7-
84
<ItemGroup>
95
<None Remove="**\*.meta;*.DotSettings;*.ncrunch*;**\*.asmdef;bin\**;obj\**;LICENSE.md;version.json;package.json" />
106
</ItemGroup>
@@ -91,10 +87,12 @@
9187
<Reference Include="UnityEditor">
9288
<HintPath>$(UnityDir)Managed\UnityEditor.dll</HintPath>
9389
<Private>False</Private>
90+
<PrivateAssets>all</PrivateAssets>
9491
</Reference>
9592
<Reference Include="UnityEngine">
9693
<HintPath>$(UnityDir)Managed\UnityEngine.dll</HintPath>
9794
<Private>False</Private>
95+
<PrivateAssets>all</PrivateAssets>
9896
</Reference>
9997

10098
<Reference Condition="$(MSBuildProjectName.EndsWith('Tests'))" Include="UnityEditor.TestRunner">

src/com.unity.editor.tasks/Editor/Base/ActionTask.cs

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,13 @@ public TaskQueue(ITaskManager taskManager, CancellationToken token) : base(taskM
4646
/// <returns></returns>
4747
public ITask Queue(ITask task)
4848
{
49+
task.EnsureNotNull(nameof(task));
50+
4951
// if this task fails, both OnEnd and Catch will be called
5052
// if a task before this one on the chain fails, only Catch will be called
5153
// so avoid calling TaskFinished twice by ignoring failed OnEnd calls
5254
task.OnEnd += InvokeFinishOnlyOnSuccess;
53-
task.Catch(e => TaskFinished(false, e));
55+
task.Catch(e => TaskFinished());
5456
queuedTasks.Add(task);
5557
return this;
5658
}
@@ -88,10 +90,10 @@ protected override void Schedule()
8890
private void InvokeFinishOnlyOnSuccess(ITask task, bool success, Exception ex)
8991
{
9092
if (success)
91-
TaskFinished(true, null);
93+
TaskFinished();
9294
}
9395

94-
private void TaskFinished(bool success, Exception ex)
96+
private void TaskFinished()
9597
{
9698
var count = Interlocked.Increment(ref finishedTaskCount);
9799
if (count == queuedTasks.Count)
@@ -184,7 +186,7 @@ public ITask<TTaskResult> Queue(ITask<TTaskResult> task)
184186
// so avoid calling TaskFinished twice by ignoring failed OnEnd calls
185187
task.Progress(progressReporter.UpdateProgress);
186188
task.OnEnd += InvokeFinishOnlyOnSuccess;
187-
task.Catch(e => TaskFinished(default, false, e));
189+
task.Catch(e => TaskFinished());
188190
queuedTasks.Add(task);
189191
return task;
190192
}
@@ -222,10 +224,10 @@ protected override void Schedule()
222224
private void InvokeFinishOnlyOnSuccess(ITask<TTaskResult> task, TTaskResult result, bool success, Exception ex)
223225
{
224226
if (success)
225-
TaskFinished(result, true, null);
227+
TaskFinished();
226228
}
227229

228-
private void TaskFinished(TTaskResult result, bool success, Exception ex)
230+
private void TaskFinished()
229231
{
230232
var count = Interlocked.Increment(ref finishedTaskCount);
231233
if (count == queuedTasks.Count)
@@ -272,7 +274,7 @@ public ActionTask(ITaskManager taskManager, Action action)
272274
public ActionTask(ITaskManager taskManager, CancellationToken token, Action action)
273275
: base(taskManager, token)
274276
{
275-
Guard.ArgumentNotNull(action, "action");
277+
Guard.EnsureNotNull(action, "action");
276278
Callback = _ => action();
277279
Name = "ActionTask";
278280
}
@@ -295,7 +297,7 @@ public ActionTask(ITaskManager taskManager, Action<bool> action)
295297
public ActionTask(ITaskManager taskManager, CancellationToken token, Action<bool> action)
296298
: base(taskManager, token)
297299
{
298-
Guard.ArgumentNotNull(action, "action");
300+
Guard.EnsureNotNull(action, "action");
299301
Callback = action;
300302
Name = "ActionTask";
301303
}
@@ -318,7 +320,7 @@ public ActionTask(ITaskManager taskManager, Action<bool, Exception> action)
318320
public ActionTask(ITaskManager taskManager, CancellationToken token, Action<bool, Exception> action)
319321
: base(taskManager, token)
320322
{
321-
Guard.ArgumentNotNull(action, "action");
323+
Guard.EnsureNotNull(action, "action");
322324
CallbackWithException = action;
323325
Name = "ActionTask<Exception>";
324326
}
@@ -370,7 +372,7 @@ public ActionTask(ITaskManager taskManager, Action<bool, T> action, Func<T> getP
370372
public ActionTask(ITaskManager taskManager, CancellationToken token, Action<bool, T> action, Func<T> getPreviousResult = null)
371373
: base(taskManager, token)
372374
{
373-
Guard.ArgumentNotNull(action, "action");
375+
Guard.EnsureNotNull(action, "action");
374376

375377
this.getPreviousResult = getPreviousResult;
376378
Callback = action;
@@ -396,7 +398,7 @@ public ActionTask(ITaskManager taskManager, Action<bool, Exception, T> action, F
396398
public ActionTask(ITaskManager taskManager, CancellationToken token, Action<bool, Exception, T> action, Func<T> getPreviousResult = null)
397399
: base(taskManager, token)
398400
{
399-
Guard.ArgumentNotNull(action, "action");
401+
Guard.EnsureNotNull(action, "action");
400402

401403
this.getPreviousResult = getPreviousResult;
402404
CallbackWithException = action;
@@ -465,7 +467,7 @@ public FuncTask(ITaskManager taskManager, Func<T> action)
465467
public FuncTask(ITaskManager taskManager, CancellationToken token, Func<T> action)
466468
: base(taskManager, token)
467469
{
468-
Guard.ArgumentNotNull(action, "action");
470+
Guard.EnsureNotNull(action, "action");
469471
Callback = _ => action();
470472
Name = $"FuncTask<{typeof(T)}>";
471473
}
@@ -477,7 +479,7 @@ public FuncTask(ITaskManager taskManager, Func<bool, T> action)
477479
public FuncTask(ITaskManager taskManager, CancellationToken token, Func<bool, T> action)
478480
: base(taskManager, token)
479481
{
480-
Guard.ArgumentNotNull(action, "action");
482+
Guard.EnsureNotNull(action, "action");
481483
Callback = action;
482484
Name = $"FuncTask<{typeof(T)}>";
483485
}
@@ -489,7 +491,7 @@ public FuncTask(ITaskManager taskManager, Func<bool, Exception, T> action)
489491
public FuncTask(ITaskManager taskManager, CancellationToken token, Func<bool, Exception, T> action)
490492
: base(taskManager, token)
491493
{
492-
Guard.ArgumentNotNull(action, "action");
494+
Guard.EnsureNotNull(action, "action");
493495
CallbackWithException = action;
494496
Name = $"FuncTask<Exception, {typeof(T)}>";
495497
}
@@ -532,7 +534,7 @@ public FuncTask(ITaskManager taskManager, Func<bool, T, TResult> action, Func<T>
532534
public FuncTask(ITaskManager taskManager, CancellationToken token, Func<bool, T, TResult> action, Func<T> getPreviousResult = null)
533535
: base(taskManager, token, getPreviousResult)
534536
{
535-
Guard.ArgumentNotNull(action, "action");
537+
Guard.EnsureNotNull(action, "action");
536538
Callback = action;
537539
Name = $"FuncTask<{typeof(T)}, {typeof(TResult)}>";
538540
}
@@ -544,7 +546,7 @@ public FuncTask(ITaskManager taskManager, Func<bool, Exception, T, TResult> acti
544546
public FuncTask(ITaskManager taskManager, CancellationToken token, Func<bool, Exception, T, TResult> action, Func<T> getPreviousResult = null)
545547
: base(taskManager, token, getPreviousResult)
546548
{
547-
Guard.ArgumentNotNull(action, "action");
549+
Guard.EnsureNotNull(action, "action");
548550
CallbackWithException = action;
549551
Name = $"FuncTask<{typeof(T)}, Exception, {typeof(TResult)}>";
550552
}
@@ -587,7 +589,7 @@ public FuncListTask(ITaskManager taskManager, Func<bool, List<T>> action)
587589
public FuncListTask(ITaskManager taskManager, CancellationToken token, Func<bool, List<T>> action)
588590
: base(taskManager, token)
589591
{
590-
Guard.ArgumentNotNull(action, "action");
592+
Guard.EnsureNotNull(action, "action");
591593
Callback = action;
592594
}
593595

@@ -598,7 +600,7 @@ public FuncListTask(ITaskManager taskManager, Func<bool, Exception, List<T>> act
598600
public FuncListTask(ITaskManager taskManager, CancellationToken token, Func<bool, Exception, List<T>> action)
599601
: base(taskManager, token)
600602
{
601-
Guard.ArgumentNotNull(action, "action");
603+
Guard.EnsureNotNull(action, "action");
602604
CallbackWithException = action;
603605
}
604606

@@ -609,7 +611,7 @@ public FuncListTask(ITaskManager taskManager, Func<bool, FuncListTask<T>, List<T
609611
public FuncListTask(ITaskManager taskManager, CancellationToken token, Func<bool, FuncListTask<T>, List<T>> action)
610612
: base(taskManager, token)
611613
{
612-
Guard.ArgumentNotNull(action, "action");
614+
Guard.EnsureNotNull(action, "action");
613615
CallbackWithSelf = action;
614616
}
615617

@@ -661,7 +663,7 @@ public FuncListTask(ITaskManager taskManager, Func<bool, T, List<TResult>> actio
661663
public FuncListTask(ITaskManager taskManager, CancellationToken token, Func<bool, T, List<TResult>> action)
662664
: base(taskManager, token)
663665
{
664-
Guard.ArgumentNotNull(action, "action");
666+
Guard.EnsureNotNull(action, "action");
665667
Callback = action;
666668
}
667669

@@ -672,7 +674,7 @@ public FuncListTask(ITaskManager taskManager, Func<bool, Exception, T, List<TRes
672674
public FuncListTask(ITaskManager taskManager, CancellationToken token, Func<bool, Exception, T, List<TResult>> action)
673675
: base(taskManager, token)
674676
{
675-
Guard.ArgumentNotNull(action, "action");
677+
Guard.EnsureNotNull(action, "action");
676678
CallbackWithException = action;
677679
}
678680

src/com.unity.editor.tasks/Editor/Base/Progress.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
namespace Unity.Editor.Tasks
1212
{
13+
using Helpers;
14+
1315
public interface IProgress
1416
{
1517
event Action<IProgress> OnProgress;
@@ -41,6 +43,8 @@ public class ProgressReporter
4143

4244
public void UpdateProgress(IProgress prog)
4345
{
46+
if (prog == null) return;
47+
4448
long total = 0;
4549
long value = 0;
4650
IProgress data;
@@ -111,12 +115,15 @@ public class Progress : IProgress
111115

112116
public Progress(ITask task)
113117
{
118+
task.EnsureNotNull(nameof(task));
119+
114120
Task = task;
115121
Message = task.Message;
116122
}
117123

118124
public void UpdateProgress(IProgress progress)
119125
{
126+
if (progress == null) return;
120127
UpdateProgress(progress.Value, progress.Total, progress.Message, progress.InnerProgress);
121128
}
122129

0 commit comments

Comments
 (0)