mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-09 10:16:50 +00:00
FIX: fix the crash issue #1944 caused by wronog thread name in some
corner cases this patch is cherry-picked from PrusaSlicer's 84722876012ca310e29b291e10fef9d18ae26cea thanks to 'Vojtech Bubnik' for the fix Implementing a test whether the current thread is the main (UI) thread and using it on AppConfig::save() to assert if save is called from a worker thread. The old assert was using thread names, which did not always work on Windows. Fixes #7839 #9178 #9370 #9420
This commit is contained in:
@@ -26,6 +26,13 @@ inline bool set_thread_name(boost::thread &thread, const std::string &thread_nam
|
||||
bool set_current_thread_name(const char *thread_name);
|
||||
inline bool set_current_thread_name(const std::string &thread_name) { return set_current_thread_name(thread_name.c_str()); }
|
||||
|
||||
// To be called at the start of the application to save the current thread ID as the main (UI) thread ID.
|
||||
void save_main_thread_id();
|
||||
// Retrieve the cached main (UI) thread ID.
|
||||
boost::thread::id get_main_thread_id();
|
||||
// Checks whether the main (UI) thread is active.
|
||||
bool is_main_thread_active();
|
||||
|
||||
// Returns nullopt if not supported.
|
||||
// Not supported by OSX.
|
||||
// Naming threads is only supported on newer Windows 10.
|
||||
|
||||
Reference in New Issue
Block a user