Optional dump key and output path features #458
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
OldButImportant
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
software-migration-backups/Dumper-7-17-05-2026!458
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dump-key"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Dump Key feature
Sleep timeout feature
SDK path
The one change I see as possibly controversial is calling
using namespace std::chronoin main thread. I did this to avoid having to wrap the short-circuited conditional that checks for the timeout and I also adjusted the final time calculation to use the same code and handle it inline with the print statement. If you prefer not to import the namespace or would rather use a shorthand as we already did for fs = filesystem in settings I can rewrite that. But its just an aesthetic change so if you don't mind it then I think we're goodI also did include a block of code that makes it so clicking and highlighting text on the console won't block the thread but I left it commented out in case thats an intended feature. I thought it made sense to leave it there for anyone compiling themselves since its not super well known and I personally find it annoying when I accidentally freeze a game.
I did not bother with the example config and separate doc I had done earlier but I did add some basic explanation of features in the readme and anyone who builds it themselves should find adequate explanation in the comments as to why things are done the way they are.
The detached thread inside the lambda is very well tested and isn't particularly fragile imo but if someone who has no clue what they're doing goes and tries to mess with that section they will probably have a bad time. e.g. if they want to capture another variable declared in the main thread, ignore the comment, and pass it by reference instead of by value it will 100% crash every time. So if you end up getting issues made about std::terminate or dangling reference crashes I would probably just tell them not to touch what they don't understand. I don't mind being tagged in an issue though and I'll add that if you wanted to ever update to C++ 20+ we can make it more thread safe with jthreads but I wasn't gonna push for that and I think this is totally fine as is.
using namespaceanythingOk thank you for cleaning up things and providing this pull request in the first place. I apologize for the long delay before this response, I was quite busy lately.
The last thing I'll ask of you is to move the if-else block at
Main.cpp:32into a subfunction to keep main clean. Maybe in Settings.cpp addvoid Settings::Config::WaitForDumperToStart(). After such a change is made I will merge this pullrequest.Hey, no worries at all, I've been taking my sweet time with this. And I'm actually glad you held me to higher standards because I've just recently started a job as an unreal engine dev and we use Epic code standards so the review was helpful.
I think this should be all good now although its hard to say for sure since github does not display whitespace. But I think the functionality is what you're looking for
That is very nice to hear, I wish you success in your new job! I'll test the code in the next few days and then I'll merge it.