Я пытаюсь написать неисправный код, который не использует переменную pthread_cond. При проверке условия, если условие не выполняется, он ожидает/блокирует навсегда. Поток B должен выставить сигнал, чтобы разблокировать поток A. Я не использую API для блокировки и разблокировки в Linux. Я хочу продемонстрировать условные переменные выгоды. Однако я хочу сначала написать код, который блокируется при условии, и он должен разблокировать по сигналу. В этом случае я покажу, как потерялся сигнал, и возникает состояние гонки. Пожалуйста, помогите мне с API и использованием.
Вместо этого вы можете использовать pthread_mutex. Сначала создайте глобальный мьютекс и заблокируйте его в своей функции main() перед созданием потоков A & B. В поток A сделайте pthread_mutex_lock(), который будет ждать разблокировки мьютекса. В потоке B выполните pthread_mutex_unlock(), чтобы передать поток A для продолжения.
sigsuspend
.