thread set name
This commit is contained in:
parent
6c3c20fc35
commit
10298b9534
7 changed files with 35 additions and 1 deletions
|
@ -1941,6 +1941,9 @@ Error _Thread::start(Object *p_instance,const StringName& p_method,const Variant
|
||||||
return ERR_CANT_CREATE;
|
return ERR_CANT_CREATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (name != "")
|
||||||
|
thread->set_name(name);
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1972,12 +1975,24 @@ Variant _Thread::wait_to_finish() {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Error _Thread::set_name(const String &p_name) {
|
||||||
|
|
||||||
|
name = p_name;
|
||||||
|
|
||||||
|
if (thread) {
|
||||||
|
return thread->set_name(p_name);
|
||||||
|
};
|
||||||
|
|
||||||
|
return OK;
|
||||||
|
};
|
||||||
|
|
||||||
void _Thread::_bind_methods() {
|
void _Thread::_bind_methods() {
|
||||||
|
|
||||||
ObjectTypeDB::bind_method(_MD("start:Error","instance","method","userdata","priority"),&_Thread::start,DEFVAL(Variant()),DEFVAL(PRIORITY_NORMAL));
|
ObjectTypeDB::bind_method(_MD("start:Error","instance","method","userdata","priority"),&_Thread::start,DEFVAL(Variant()),DEFVAL(PRIORITY_NORMAL));
|
||||||
ObjectTypeDB::bind_method(_MD("get_id"),&_Thread::get_id);
|
ObjectTypeDB::bind_method(_MD("get_id"),&_Thread::get_id);
|
||||||
ObjectTypeDB::bind_method(_MD("is_active"),&_Thread::is_active);
|
ObjectTypeDB::bind_method(_MD("is_active"),&_Thread::is_active);
|
||||||
ObjectTypeDB::bind_method(_MD("wait_to_finish:Variant"),&_Thread::wait_to_finish);
|
ObjectTypeDB::bind_method(_MD("wait_to_finish:Variant"),&_Thread::wait_to_finish);
|
||||||
|
ObjectTypeDB::bind_method(_MD("set_name:Error", "name"),&_Thread::set_name);
|
||||||
|
|
||||||
BIND_CONSTANT( PRIORITY_LOW );
|
BIND_CONSTANT( PRIORITY_LOW );
|
||||||
BIND_CONSTANT( PRIORITY_NORMAL );
|
BIND_CONSTANT( PRIORITY_NORMAL );
|
||||||
|
|
|
@ -508,6 +508,7 @@ protected:
|
||||||
Object *target_instance;
|
Object *target_instance;
|
||||||
StringName target_method;
|
StringName target_method;
|
||||||
Thread *thread;
|
Thread *thread;
|
||||||
|
String name;
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
static void _start_func(void *ud);
|
static void _start_func(void *ud);
|
||||||
public:
|
public:
|
||||||
|
@ -523,6 +524,7 @@ public:
|
||||||
String get_id() const;
|
String get_id() const;
|
||||||
bool is_active() const;
|
bool is_active() const;
|
||||||
Variant wait_to_finish();
|
Variant wait_to_finish();
|
||||||
|
Error set_name(const String& p_name);
|
||||||
|
|
||||||
_Thread();
|
_Thread();
|
||||||
~_Thread();
|
~_Thread();
|
||||||
|
|
|
@ -58,6 +58,11 @@ void Thread::wait_to_finish(Thread *p_thread) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Error Thread::set_name(const String &p_name) {
|
||||||
|
|
||||||
|
return ERR_UNAVAILABLE;
|
||||||
|
};
|
||||||
|
|
||||||
Thread::Thread()
|
Thread::Thread()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
@author Juan Linietsky <reduzio@gmail.com>
|
@author Juan Linietsky <reduzio@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "ustring.h"
|
||||||
|
|
||||||
typedef void (*ThreadCreateCallback)(void *p_userdata);
|
typedef void (*ThreadCreateCallback)(void *p_userdata);
|
||||||
|
|
||||||
|
@ -72,6 +73,7 @@ protected:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
|
virtual Error set_name(const String& p_name);
|
||||||
|
|
||||||
virtual ID get_ID() const=0;
|
virtual ID get_ID() const=0;
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,14 @@ void ThreadPosix::wait_to_finish_func_posix(Thread* p_thread) {
|
||||||
tp->pthread=0;
|
tp->pthread=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Error ThreadPosix::set_name(const String& p_name) {
|
||||||
|
|
||||||
|
ERR_FAIL_COND_V(pthread == 0, ERR_UNCONFIGURED);
|
||||||
|
|
||||||
|
int err = pthread_setname_np(pthread, p_name.utf8().get_data());
|
||||||
|
|
||||||
|
return err == 0 ? OK : ERR_INVALID_PARAMETER;
|
||||||
|
};
|
||||||
|
|
||||||
void ThreadPosix::make_default() {
|
void ThreadPosix::make_default() {
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
virtual ID get_ID() const;
|
virtual ID get_ID() const;
|
||||||
|
Error set_name(const String& p_name);
|
||||||
|
|
||||||
static void make_default();
|
static void make_default();
|
||||||
|
|
||||||
|
|
|
@ -806,6 +806,7 @@ void AudioServerSW::init() {
|
||||||
#ifndef NO_THREADS
|
#ifndef NO_THREADS
|
||||||
exit_update_thread=false;
|
exit_update_thread=false;
|
||||||
thread = Thread::create(_thread_func,this);
|
thread = Thread::create(_thread_func,this);
|
||||||
|
thread->set_name("AudioServerSW");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue