Я пишу программу, которая использует библиотеку потоков POSIX.Я выполняю некоторое возвращаемое значение системных вызовов, например:
if (pthread_join(temp, NULL) != 0) {
cerr << "system error\n" << endl;
exit(1);
}
Я хочу, чтобы программа немедленно завершала работу, когда она проходит это условие условия, но может возникнуть проблема, когда процессор решит переключиться надругой поток прямо перед командой 'exit (1)'.
Есть ли способ защитить такие случаи?
использование специального мьютекса для этого не поможет, потому что: 1. У меня много таких вызовов, и блокировка каждого из них сделает код очень медленным, неэффективным и, в основном, очень уродливым!2. Каждый мьютекс требует своей собственной проверки возвращаемого значения!Так что это, очевидно, не решает исходную проблему ..
Есть какие-нибудь идеи помощи?