- pthread_mutex_init(&p->mutex, 0);
- pthread_cond_init(&p->input_data, 0);
- pthread_create (&p->thread_id, 0, sel_thread_handler, p);
+ p->mutex = 0;
+ yaz_mutex_create(&p->mutex);
+ yaz_cond_create(&p->input_data);
+ if (p->input_data == 0) /* condition variable could not be created? */
+ {
+ sel_thread_destroy(p);
+ return 0;
+ }
+
+ p->no_threads = no_of_threads;
+ p->thread_id = nmem_malloc(nmem, sizeof(*p->thread_id) * p->no_threads);
+ for (i = 0; i < p->no_threads; i++)
+ p->thread_id[i] = yaz_thread_create(sel_thread_handler, p);