autostart_log: rework without threading

Using any kind of sleep or while loop causes a crash when running in wine.
So let's not do that.
pull/1199/head
flightlessmango 5 months ago
parent adbafe1450
commit 1d357e17c8

@ -60,6 +60,7 @@ public:
std::string output_folder; std::string output_folder;
const int64_t log_interval; const int64_t log_interval;
const int64_t log_duration; const int64_t log_duration;
bool autostart_init = false;
private: private:
std::vector<logData> m_log_array; std::vector<logData> m_log_array;

@ -275,6 +275,13 @@ void update_hud_info_with_frametime(struct swapchain_stats& sw_stats, const stru
sw_stats.time = time.str(); sw_stats.time = time.str();
} }
if (params.autostart_log && logger && !logger->autostart_init) {
if ((std::chrono::steady_clock::now() - HUDElements.overlay_start) > std::chrono::seconds(params.autostart_log)){
logger->start_logging();
logger->autostart_init = true;
}
}
sw_stats.n_frames_since_update = 0; sw_stats.n_frames_since_update = 0;
sw_stats.last_fps_update = now; sw_stats.last_fps_update = now;

@ -972,8 +972,6 @@ parse_overlay_config(struct overlay_params *params,
logger->stop_logging(); logger->stop_logging();
} }
logger = std::make_unique<Logger>(params); logger = std::make_unique<Logger>(params);
if(params->autostart_log && !logger->is_active())
std::thread(autostart_log, params->autostart_log).detach();
#ifdef MANGOAPP #ifdef MANGOAPP
{ {
extern bool new_frame; extern bool new_frame;

Loading…
Cancel
Save