+
+static int dnsengine_default_start_worker() {
+ if(iodns_threads_wanted >= IODNS_MAX_THREAD-1)
+ return 0;
+ int i;
+ for(i = 0; i < IODNS_MAX_THREAD; i++) {
+ if(!iodns_thread[i])
+ break;
+ }
+ if(i >= IODNS_MAX_THREAD)
+ return 0;
+ iodns_thread[i] = malloc(sizeof(**iodns_thread));
+ if(!iodns_thread[i])
+ return 0;
+ iodns_threads_wanted++;
+ if(pthread_create(iodns_thread[i], NULL, dnsengine_worker_main, NULL)) {
+ iodns_threads_wanted--;
+ iolog_trigger(IOLOG_ERROR, "could not create pthread in %s:%d (Returned: %i)", __FILE__, __LINE__, thread_err);
+ return 0;
+ }
+ iodns_threads_running++;
+ return 1;
+}