diff options
Diffstat (limited to 'platform/javascript')
| -rw-r--r-- | platform/javascript/export/export.cpp | 27 | 
1 files changed, 13 insertions, 14 deletions
| diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index c44a0270ab..f0326d5027 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -200,7 +200,7 @@ class EditorExportPlatformJavaScript : public EditorExportPlatform {  private:  	Ref<EditorHTTPServer> server;  	bool server_quit; -	Mutex *server_lock; +	Mutex server_lock;  	Thread *server_thread;  	static void _server_thread_poll(void *data); @@ -531,9 +531,8 @@ bool EditorExportPlatformJavaScript::poll_export() {  	menu_options = preset.is_valid();  	if (server->is_listening()) {  		if (menu_options == 0) { -			server_lock->lock(); +			MutexLock lock(server_lock);  			server->stop(); -			server_lock->unlock();  		} else {  			menu_options += 1;  		} @@ -553,9 +552,8 @@ int EditorExportPlatformJavaScript::get_options_count() const {  Error EditorExportPlatformJavaScript::run(const Ref<EditorExportPreset> &p_preset, int p_option, int p_debug_flags) {  	if (p_option == 1) { -		server_lock->lock(); +		MutexLock lock(server_lock);  		server->stop(); -		server_lock->unlock();  		return OK;  	} @@ -584,10 +582,12 @@ Error EditorExportPlatformJavaScript::run(const Ref<EditorExportPreset> &p_prese  	ERR_FAIL_COND_V_MSG(!bind_ip.is_valid(), ERR_INVALID_PARAMETER, "Invalid editor setting 'export/web/http_host': '" + bind_host + "'. Try using '127.0.0.1'.");  	// Restart server. -	server_lock->lock(); -	server->stop(); -	err = server->listen(bind_port, bind_ip); -	server_lock->unlock(); +	{ +		MutexLock lock(server_lock); + +		server->stop(); +		err = server->listen(bind_port, bind_ip); +	}  	ERR_FAIL_COND_V_MSG(err != OK, err, "Unable to start HTTP server.");  	OS::get_singleton()->shell_open(String("http://" + bind_host + ":" + itos(bind_port) + "/tmp_js_export.html")); @@ -605,9 +605,10 @@ void EditorExportPlatformJavaScript::_server_thread_poll(void *data) {  	EditorExportPlatformJavaScript *ej = (EditorExportPlatformJavaScript *)data;  	while (!ej->server_quit) {  		OS::get_singleton()->delay_usec(1000); -		ej->server_lock->lock(); -		ej->server->poll(); -		ej->server_lock->unlock(); +		{ +			MutexLock lock(ej->server_lock); +			ej->server->poll(); +		}  	}  } @@ -615,7 +616,6 @@ EditorExportPlatformJavaScript::EditorExportPlatformJavaScript() {  	server.instance();  	server_quit = false; -	server_lock = Mutex::create();  	server_thread = Thread::create(_server_thread_poll, this);  	Ref<Image> img = memnew(Image(_javascript_logo)); @@ -639,7 +639,6 @@ EditorExportPlatformJavaScript::~EditorExportPlatformJavaScript() {  	server->stop();  	server_quit = true;  	Thread::wait_to_finish(server_thread); -	memdelete(server_lock);  	memdelete(server_thread);  } |