EDIT: Я не могу использовать мьютекс или сна() или любой типа ожидания, как мы достаточно новые для потоков в C.Многопоточность - как остановить все потоки, если условие выполнено?
Для моего назначения я сделать BruteForce взломщик паролей с использованием темы , Идея состоит в том, что у меня есть хэш и соль пароля, поэтому я использую комбинацию алфавита A-Z, a-z, 0-9 и шифрую его с помощью функции crypt_r и сравниваю ее с хешем и солью, которую у меня есть.
Я создал 2 потока, один, который просто проверяет строчные буквы и второй, который проверяет все буквы алфавита.
Моя проблема заключается в том, что после того, как нижний регистр найдет пароль, который он дает, но второй поток продолжает работать в фоновом режиме.
Как остановить второй поток без использования каких-либо глобальных переменных?
Вот как я идти о потоке присоединяется:
for (int i = 0; i < nbThread; ++i) {
pthread_join(tabThread[i], NULL);
pthread_join(tabThread2[i], NULL);
}
Спасибо за ваше время и помощь!
Возможный дубликат [Как остановить запущенный поток pthread?] (Http://stackoverflow.com/questions/18826853/how-to-stop-a-running-pthread-thread) –