#include #include #include pthread_mutex_t mutex; void signal_rec(int sig_num) { printf("The child is done\n"); pthread_mutex_unlock(&mutex); } int main(int argc, char *argv[]) { int ret_value; signal(SIGCHLD, signal_rec); mutex=PTHREAD_MUTEX_INITIALIZER; ret_value=pthread_mutex_lock(&mutex); printf("thread locked %d\n",ret_value); ret_value=fork(); if (ret_value==0) { printf("I'm the child\n"); sleep(5); printf("ahh, what a good nap\n"); } else { printf("I'm the parent\n"); // sleep(10); ret_value = pthread_mutex_lock(&mutex); printf("heh, I'm done %d\n",ret_value); } return 0; }