static int s_finished_count;
static pthread_mutex_t s_mutex;
-static void set_thread_name(const char* const fmt, const int arg)
-{
- int res;
- char name[32];
- snprintf(name, sizeof(name), fmt, arg);
- name[sizeof(name) - 1] = 0;
- VALGRIND_DO_CLIENT_REQUEST(res, 0, VG_USERREQ__SET_THREAD_NAME,
- name, 0, 0, 0, 0);
-}
-
void increment_finished_count()
{
pthread_mutex_lock(&s_mutex);
static void* thread_func1(void* arg)
{
- set_thread_name("thread_func1[%d]", *(int*)arg);
write(STDOUT_FILENO, ".", 1);
increment_finished_count();
return 0;
static void* thread_func2(void* arg)
{
- set_thread_name("thread_func2[%d]", *(int*)arg);
pthread_detach(pthread_self());
write(STDOUT_FILENO, ".", 1);
increment_finished_count();
int detachstate;
pthread_attr_t attr;
- set_thread_name("main", 0);
-
for (i = 0; i < count1 || i < count2; i++)
thread_arg[i] = i;