struct Foo : public TSharedFromThis<Foo>
{
// ...
};
struct Bar : public Foo
{
// ...
void Execute()
{
FControlFlow& ControlFlow = ...;
ControlFlow.QueueStep(this, &Bar::DoStep);
}
void DoStep()
{
}
};
The QueueStep deduction would fail as it expects the type to be directly derived as TSharedFromThis<Bar> rather than indirectly via TSharedFromThis<Foo>
#preflight 636a7040dc30a4ce96a157a7
[FYI] Geoffrey.Wong
#rb Steve.Robb
#rnx
[CL 23039132 by jamie dale in ue5-main branch]
1) Calling AsShared() during the destructor a TSharedFromThis
2) Resetting ConcurrentFlows when there are nested ConcurrentFlows
[REVIEW] [at]marti.majo, [at]mickael.gilabert
#tests locally repro bug and verified fix
[CL 21723950 by geoffrey wong in ue5-main branch]
* Added support for TrackedActivity so we can visualize various control flow's state in the console window
* Changed verbose logging a little bit to skip name of task node when task has a proper name. Couldn't find a case where task node didn't have the name unnamed
#rb Devin.Doucette
#preflight 6303dfd2820001c02cc28cc4
[CL 21511693 by henrik karlsson in ue5-main branch]
#ROBOMERGE-AUTHOR: geoffrey.wong
#ROBOMERGE-SOURCE: CL 21070492 via CL 21071376 via CL 21071433 via CL 21071489
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21079697 by geoffrey wong in ue5-main branch]
#ROBOMERGE-AUTHOR: geoffrey.wong
#ROBOMERGE-SOURCE: CL 20809616 via CL 20809627 via CL 20809644 via CL 20809659
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)
[CL 20811486 by geoffrey wong in ue5-main branch]
You can chain your flow with this lambda:
.ForkFlow([this](TSharedRef<FConcurrentControlFlows> ConcurrentFlows) {})
And that will allow you create multiple control flows to execute "at the same time" (still single-threaded).
The default continue behavior from the Fork is to wait until all concurrent flows have been [completed or cancelled]
#ROBOMERGE-AUTHOR: geoffrey.wong
#ROBOMERGE-SOURCE: CL 20809293 via CL 20809308 via CL 20809400 via CL 20809435
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)
[CL 20811474 by geoffrey wong in ue5-main branch]
#ROBOMERGE-AUTHOR: geoffrey.wong
#ROBOMERGE-SOURCE: CL 20385313 via CL 20385322 via CL 20385360 via CL 20385389
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20387491 by geoffrey wong in ue5-main branch]
#ROBOMERGE-AUTHOR: geoffrey.wong
#ROBOMERGE-SOURCE: CL 18546700 via CL 18546718 via CL 18546738 via CL 18546754 via CL 18547613 via CL 18547676
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18547744 by geoffrey wong in ue5-release-engine-test branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]