/* Multi-thread searching. Illustrates: thread cancellation, cleanup handlers. */ #include #include #include #include #include #include /* Defines the number of searching threads */ #define NUM_THREADS 5 /* Function prototypes */ void *search(void *); void print_it(void *); /* Global variables */ pthread_t threads[NUM_THREADS]; pthread_mutex_t lock; int tries; volatile int started; int main(int argc, char ** argv) { unsigned long i; unsigned long pid; /* create a number to search for */ pid = getpid(); printf("Searching for the number = %ld...\n", pid); /* Initialize the mutex lock */ pthread_mutex_init(&lock, NULL); /* Create the searching threads */ for (started=0; started