### Features
This change enables the StallDetector watchdog in Editor to submit reports to crashreporter about threads violating instrumented deadlines in the source code. This feature was available prior on Windows, and this change adds Linux support.
### Notes
New APIs:
ReportStall()
CaptureThreadPortableCallStack()
Many APIs are updated from purely "Ensure" naming to more general naming. Stalls are more like Ensures than crashes, and so the appropriate renames to make the code readable and clear have been made. In some places Ensure is replaced with the clearer: Continuable Event nomenclature.
### Testing
I synthesized an ensure on Linux, and did the same for a stall. I then compared crash report XML file to make sure they contain accurate data in the callstack, portable callstack, and other fields in the report. I also noted that the stall information was showing as expected in the crash reporter.
#rb brandon.schaefer, francis.hurteau
#jira UETOOL-3336
#preflight 625e20d2804460ab0fea3277
[CL 19911608 by geoff evans in ue5-main branch]
- Always ignore -Wunused-but-set-variable (on Apple platforms).
- Ignore -Wunordered-compare-function-pointers on third-party includes (across all clang platforms).
#rb brandon.schaefer
#jira UE-145699
#preflight 622d1696dd1bf3a95a9dfbf0
#rnx
#ROBOMERGE-AUTHOR: will.damon
#ROBOMERGE-SOURCE: CL 19375174 in //UE5/Release-5.0/... via CL 19376309
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19378035 by will damon in ue5-main branch]
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 18701089 via CL 18701091 via CL 18701094 via CL 18702221 via CL 18702246 via CL 18702283
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18702287 by arne schober in ue5-main branch]
This is similar to CL 2421073, 2424491 for FApplePlatformFile.
[at]Brandon.Schaefer, [at]Robert.Seiver
[FYI] Will.Damon
#jira none
#preflight trivial
#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18604349 in //UE5/Release-5.0/... via CL 18604376 via CL 18604394
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)
[CL 18604413 by michael sartain in ue5-main branch]
Also move stack to mmap'd memory instead of alloc'ing in heap
Should allow us to set & reduce size of 200k stack significantly via command line.
Brandon.Schaefer
#jira none
#preflight 61dc61cb1f62d3ad4d8079d4
#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18561402 in //UE5/Release-5.0/... via CL 18561404
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18561421 by michael sartain in ue5-release-engine-test branch]
Windows needs to set permissions accordingly.
#rb Brandon.Schaefer
[FYI] Josh.Adams
#preflight 61d79ed84c252480ca31e640
#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 18539045 in //UE5/Release-5.0/... via CL 18539064
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18539081 by jack porter in ue5-release-engine-test branch]
Functional tests discovered errors in the implementation. This way Improvements to Unix also improve Stadia without duplicated effort.
#preflight 61389e432d09b9000155e7e6
#rb trivial
#ROBOMERGE-AUTHOR: nuno.leiria
#ROBOMERGE-SOURCE: CL 17457455 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17457471 by nuno leiria in ue5-release-engine-test branch]
Add stderr parameter to CreateProc
Add exec-process test to TestPAL
PR #6919: Add a new FPlatformProcess::CreateProc() overload to allow separating stderr and stdout (Contributed by geordiemhall)
#rb Brandon.Schaefer, James.Singer, Robert.Seiver, Will.Damon
#jira UE-91758, UE-92964
#ROBOMERGE-SOURCE: CL 17290306 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)
[CL 17290325 by geordiemhall in ue5-release-engine-test branch]
Change all FPlatformMemory::OnOutOfMemory implementations to [[noreturn]]
#jira UE-93728
#rb steve.robb, arciel.rekman
#ROBOMERGE-SOURCE: CL 17212898 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17212911 by johan torp in ue5-release-engine-test branch]
* Stop adding/removing FTicker delegates outside the game-thread
* Made the concurrently uploading processes thread-safe using atomic state machine
* Added option to limit the number of processes on dedicated game servers
* Fix ensures not getting sent on dedicated game servers
#rb brandon.schaefer, robert.siever, ryan.gerleve
#jira FORT-392630
#ushell-cherrypick of 16969720 by louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 16968970 in //Fortnite/Release-17.30/... via CL 16968983 via CL 16982775
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16982781 by louisphilippe seguin in ue5-release-engine-test branch]
- This will make maintenance for multiple platforms a lot easier (i.e. just preflight)
- Will be easy to get callstack and debug since it will be compiled on the machine it is debugged on
- Easier to try out modifications on mimalloc itself
- Fix mimalloc compilation under Clang 10
- Fix mimalloc inconsistent usage of MI_ENCODE_FREELIST define
- Fix mimalloc inconsistent usage of _WIN32 define
- Implement MacOS and Unix -mimalloc command-line switch
- Some MacOS changes were contributed by Will.Damon
#rb Brandon.Schaefer, Will.Damon
#preflight 60b4ea613c6c4e000158233e
#rnx
[CL 16512512 by danny couture in ue5-main branch]