i added a check to ensure that threads >= 1. it seems the original code didn't check for negative numbers:
 
        unsigned number_of_threads = omp_get_num_procs();
        if(testDataFile("extractor.ini")) {
            IniFile extractorConfig("extractor.ini");
            unsigned rawNumber = stringToInt(extractorConfig.GetParameter("Threads"));
            if( rawNumber != 0 && rawNumber <= number_of_threads) {
                number_of_threads = rawNumber;
            }
        }
        omp_set_num_threads(number_of_threads);