Exemplo n.º 1
0
int main()
{
	Thread p(bind(&thr_fn), "thread1");
	cout << "tid:" << CurrentThread::tid() <<" name:" << CurrentThread::name()  << endl;

	int ret = p.start();
	if(ret < 0)
	{
		printf("p start error\n");
		assert(0);
	}	
	
	obj.value().set_name("main one");
	cout << "main set instance name:" << obj.value().name() << endl;
	
	
	ret = p.join();
	if(ret < 0)
	{
		perror("p join error:");
		assert(0);
	}

	cout << "finnally main name:" <<obj.value().name() << endl;

	return 0;
}
Exemplo n.º 2
0
void thr_fn()
{
	cout << "tid:" << CurrentThread::tid() <<" name:" << CurrentThread::name() << endl;
	sleep(1);
	cout << "thread first read name:" << obj.value().name() << endl;
	obj.value().set_name("thread one");
	cout << "thread set read name:" << obj.value().name() << endl;

	sleep(2);
	return ;
}
Exemplo n.º 3
0
const string& Thread::getTidString()
{
    if (t_tidstring.value().empty())
    {
        Thread::ThreadHandle ret_tid;
        ret_tid = ::pthread_self();
        t_tid.value() = ret_tid;
        char buf[32] = {0};
        snprintf(buf, sizeof(buf),   "%ll", (uint64_t)ret_tid);
        t_tidstring.value() = buf;
    }

    return t_tidstring;
}
Exemplo n.º 4
0
Thread::ThreadHandle Thread::getCurrentThreadID()
{
    getTidString();
    return t_tid.value();
}