joe kirchoff
942ac23295
EpicGames.Core: Use SafeProcessHandle instead of SafeFileHandle for child process in ManagedProcess
...
#rnx
[CL 32868150 by joe kirchoff in ue5-main branch]
2024-04-10 19:26:45 -04:00
ben marsh
00bef38ea0
EpicGames.Core: Set the TaskCreationOptions.RunContinuationsAsynchronously flag by default for all task completion sources.
...
[CL 31180129 by ben marsh in ue5-main branch]
2024-02-05 13:12:31 -05:00
carl bystrom
6e4f5712f2
Horde: Add support for AppContainers in ManagedProcess
...
#rb Ben.Marsh
#rb Joe.Kirchoff
[CL 30300443 by carl bystrom in ue5-main branch]
2023-12-13 14:48:45 -05:00
Ben Marsh
9b0341142d
EpicGames.Core: Ensure that managed processes are terminated if they are still in a suspended state.
...
[CL 27601135 by Ben Marsh in ue5-main branch]
2023-09-05 12:51:28 -04:00
Ben Marsh
e96e9a14f8
EpicGames.Core: Allow adding arbitrary processes to ManagedProcessGroup objects (eg. processes created with regular C# Process constructs).
...
#preflight none
[CL 24751669 by Ben Marsh in ue5-main branch]
2023-03-22 14:34:06 -04:00
Ben Marsh
0366d7924f
Horde: Forcibly terminate child process groups after 60 seconds if the stdout pipe isn't closed.
...
#preflight one
#fyi Ryan.Hummer
[CL 24691714 by Ben Marsh in ue5-main branch]
2023-03-17 13:10:59 -04:00
joe kirchoff
dc12d7356c
ManagedProcess: Don't create accounting job object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE as the main job object is already managing those processes and it is causing mspdbsrv to be terminated while in use by cl as it is a shared process
...
#jira UE-179732
#rb Danny.Couture
#lockdown Francis.Hurteau
#preflight 640a78783c2db400295299b4
[CL 24601415 by joe kirchoff in ue5-main branch]
2023-03-10 20:02:09 -05:00
joe kirchoff
a6bf4498ef
EpicGames.Core: Backout ManagedProcess.cs, did not intend to submit it
...
#rnx
#rb trivial
#preflight 63ed7177b96a6b2718d11bc3
[CL 24247586 by joe kirchoff in ue5-main branch]
2023-02-15 19:05:29 -05:00
Joe Kirchoff
3f8dfd7a85
UnrealBuildTool: Split base ProjectFiles classes into their own .cs files
...
#rnx
#rb trivial
#preflight 63ed6d967d2ec3d2fd6954b2
[CL 24247118 by Joe Kirchoff in ue5-main branch]
2023-02-15 18:49:24 -05:00
Ben Marsh
aadef9cccd
Fix static analyzer warning.
...
#preflight none
[CL 23145189 by Ben Marsh in ue5-main branch]
2022-11-15 17:53:00 -05:00
Ben Marsh
e425682876
EpicGames.Core: Swallow exception on abandoned child process reads.
...
#preflight none
[CL 23143931 by Ben Marsh in ue5-main branch]
2022-11-15 17:12:07 -05:00
Ben Marsh
075162706e
EpicGames.Core: Fix static analysis warnings.
...
#preflight 633b4ae16b10157eac6f1f15
[CL 22314153 by Ben Marsh in ue5-main branch]
2022-10-03 17:01:13 -04:00
Ben Marsh
80c440a503
Fix Xmldoc warnings in EpicGames.Core prior to enabling tests in CI.
...
#preflight none
[CL 20777139 by Ben Marsh in ue5-main branch]
2022-06-22 13:23:01 -04:00
Ben Marsh
7103281f7b
Fix mangled log output in UGS due to data being read into log buffer at incorrect offset.
...
#preflight none
[CL 20457420 by Ben Marsh in ue5-main branch]
2022-06-01 15:47:51 -04:00
Ben Marsh
21d420c5ad
Horde: Add an agent command which builds UAT runs a BuildGraph script, parsing all the log output through the regular agent path.
...
#preflight none
[CL 20264248 by Ben Marsh in ue5-main branch]
2022-05-18 13:35:33 -04:00
Ben Marsh
5c04c02bbe
C#: Set default editorconfig rules for static analysis and code formatting under Engine/Source/Programs/Shared. Add editorconfig files with exceptions for EpicGames.Build and EpicGames.UHT until code can be reviewed by owners.
...
#preflight none
#preflight 62599c0679048b7e5e4e11cd
[CL 19772356 by Ben Marsh in ue5-main branch]
2022-04-15 12:31:15 -04:00
Ben Marsh
cda1b66bba
Reformat EpicGames.Core according to standard coding conventions.
...
#preflight 623cd2e84368f558e30b4a9e
[CL 19502309 by Ben Marsh in ue5-main branch]
2022-03-24 16:35:00 -04:00
Joe Kirchoff
e0c988c022
EpicGames.Core: Fix NullReferenceException when framework process stdout & err pipes aren't merged
...
#rnx
#rb trivial
#preflight 622688bf2f024043cc34e521
[CL 19293529 by Joe Kirchoff in ue5-main branch]
2022-03-07 17:53:22 -05:00
Ben Marsh
d8d4932331
EpicGames.Core: Fix potential exception reading past valid end of buffer when spawning child processes.
...
#preflight 621d1d55383b5494aa0ab1d1
[CL 19179344 by Ben Marsh in ue5-main branch]
2022-02-28 14:33:21 -05:00
Joe Kirchoff
1bea75f650
ManagedProcess: Process.StartTime & ExitTime can't be trusted on Mac
...
#rnx
#rb trivial
#preflight none
[CL 19045300 by Joe Kirchoff in ue5-main branch]
2022-02-17 19:06:44 -05:00
Ben Marsh
fd1f1f0c3b
Restore CL 18614625 with fix for hang/memory leak.
...
#preflight none
#fyi Jack.Porter
[CL 18618782 by Ben Marsh in ue5-main branch]
2022-01-14 11:34:46 -05:00
Jack Porter
6cbd27e7e6
Back out CL 18601195 due to infinite hang/memory eat in UBT when building IOS or TVOS
...
#jira UE-139211
#preflight none
#rb Will.Damon
#fyi Ben.Marsh
[CL 18614625 by Jack Porter in ue5-main branch]
2022-01-13 23:40:02 -05:00
Ben Marsh
e031a88392
CS: Changes to ManagedProcess to better support cancellation on Mac/Linux when using merged output pipes.
...
- Data read from stdout/stderr is now writen to buffers posted in a Channel<T>, which correctly supports await and cancellation (unlike AsynchronousPipe).
- Public StdOut/StdErr streams are now a custom stream implementation that reads from the channel and copies data into the output buffer.
- Buffer objects are sized at 1024 bytes and pooled, which should be enough to accomodate most output lines without splitting.
- When the process is disposed, we now terminate the entire process tree. The tasks left reading from the child process terminate asynchronously.
Tested in a command line and WinForms app (by forcing SupportsJobObjects to return false) with asynchronous and synchronous reads to ensure code does not deadlock.
#preflight 61e062b3ed50181feb511e39
[CL 18601195 by Ben Marsh in ue5-main branch]
2022-01-13 14:17:35 -05:00
Ben Marsh
7a9e8c8b5c
UGS: Significant refactor of UGS internals.
...
- Now uses the custom C++ Perforce library developed for Horde. This removes dependencies on an installed P4.EXE tool, improves performance, and paves the way to cross-platform support via command line invocations.
- As part of the migration to the new Perforce library, the codebase now uses async/await extensively instead of background threads, and supports a proper cancellation path rather than aborting threads.
- ILogger is now used for writing log files.
- Started converting to use of nullable annotations.
#preflight none
[CL 18511154 by Ben Marsh in ue5-main branch]
2022-01-04 14:03:17 -05:00
Joe Kirchoff
18fe2bc53f
ManagedProcess: Remove unnecessary locks from merged stream copy when creating background threads to merge output streams
...
#preflight 614225ba9bba9a0001980a37
#rb Ben.Marsh
#rnx
[CL 17525066 by Joe Kirchoff in ue5-main branch]
2021-09-15 15:22:22 -04:00