6#include <Foundation/FoundationInternal.h>
7PL_FOUNDATION_INTERNAL_HEADER
9#include <Foundation/System/ProcessGroup.h>
11#if PL_ENABLED(PL_SUPPORTS_PROCESSES)
13struct plProcessGroupImpl
15 PL_DECLARE_POD_TYPE();
22plProcessGroup::~plProcessGroup()
24 TerminateAll().IgnoreResult();
27plResult plProcessGroup::Launch(
const plProcessOptions& opt)
29 plProcess& process = m_Processes.ExpandAndGetRef();
30 return process.Launch(opt);
35 for (
auto& process : m_Processes)
37 if (process.GetState() != plProcessState::Finished && process.WaitToFinish(timeout).Failed())
46plResult plProcessGroup::TerminateAll(plInt32 iForcedExitCode )
48 auto result = PL_SUCCESS;
49 for (
auto& process : m_Processes)
51 if (process.GetState() == plProcessState::Running && process.Terminate().Failed())
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12