Jump to content

[SOLVED] crash if use thread in plugin and reload


photo

Recommended Posts

Posted

If i use thread in a editor plugin, when i try to remove the plugin or reload the plugin it will crash.

reproduce:

1: copy the code and save a cpp file

2: use editor plugin to load that cpp file

3: select the plugin and remove it

result: engine crash.

 

code:

int threadID;
string getName() {
	return "BUG";
}

void init(string name) {
	threadID=thread("updateThread");
}


void updateThread(){
	while(1){
		wait;
	}
}

void shutdown() {
 kill_thread(threadID);
}

void update(int need_reload) {
	
}
Posted

Sorry for late reply.

Thanks for info. We've passed this issue to our devs.

Posted

Hello,

 

This issue fill be fixed in next SDK update.

Update will be available in the coming days.

 

Upd. Also new run_threads() function will be available.
This function manually run all threads of the script so you can use it instead of kill_thread() function

Here is the sample of plugin with run_thread() function.

int run;
int threadID;

string getName() {
	return "BUG";
}

void init(string name) {
	run = 1;
	threadID = thread("updateThread");
	log.message(__FUNC__ + ": thread id = %i\n",threadID);
}

void updateThread(){
	while(run){
		wait;
		engine.message("BUG update\n");
	}
}

void shutdown() {
	run = 0;
	log.message("shutdown\n");
	forloop(int i = 0; 10) {
		log.message("%d\n",i);
		run_threads();
	}
	log.message("done\n");
	
	/*kill_thread(threadID);
	log.message(__FUNC__ + ": kill thread id = %i\n",threadID);*/
}

void update(int need_reload) {
	
}

×
×
  • Create New...