#include #include #include #include #include #include void * func1(void * arg) { while(1) { sleep(1); printf("%p\n", pthread_self()); } } void * func2(void * arg) { while(1) { sleep(1); printf("\t%p\n", pthread_self()); } } int main(int argc, char**argv) { pthread_t td; pthread_mutex_t mutex; pthread_mutex_init(&mutex, NULL); pthread_mutex_lock(&mutex); printf("%p owns mutex\n", pthread_self()); pthread_create(&td, NULL, func1, NULL); printf("Created thread %p\n", td); sleep(10); int error = pthread_mutex_unlock(&mutex); if(error) { printf("%p does not own mutex!(error=%s)\n", pthread_self(), strerror(error)); } exit(0); }