Browse Source

Remove thread after use to prevent memory leak

Rafał Mikrut 4 years ago
parent
commit
d025194602
2 changed files with 2 additions and 1 deletions
  1. 1 1
      core/os/thread.h
  2. 1 0
      modules/lightmapper_cpu/lightmapper_cpu.cpp

+ 1 - 1
core/os/thread.h

@@ -71,7 +71,7 @@ public:
 	static Error set_name(const String &p_name);
 	_FORCE_INLINE_ static ID get_main_id() { return _main_thread_id; } ///< get the ID of the main thread
 	static ID get_caller_id(); ///< get the ID of the caller function ID
-	static void wait_to_finish(Thread *p_thread); ///< waits until thread is finished, and deallocates it.
+	static void wait_to_finish(Thread *p_thread); ///< waits until thread is finished
 	static Thread *create(ThreadCreateCallback p_callback, void *p_user, const Settings &p_settings = Settings()); ///< Static function to create a thread, will call p_callback
 
 	virtual ~Thread();

+ 1 - 0
modules/lightmapper_cpu/lightmapper_cpu.cpp

@@ -264,6 +264,7 @@ bool LightmapperCPU::_parallel_run(int p_count, const String &p_description, Bak
 	}
 	thread_cancelled = cancelled;
 	Thread::wait_to_finish(runner_thread);
+	memdelete(runner_thread);
 #endif
 
 	thread_cancelled = false;