Я кодирую C на Ubuntu. Мне нужно написать поток таймера в C. У меня есть этот поток
void * thread(void)
{
sleep(TIMEOUT);
pthread_mutex_lock(&mutex);
//operations
pthead_mutex_unlock(&mutex);
}
Мне нужно, чтобы другой поток, например, timerManager, мог сбросить таймер. Моя первая идея заключалась в том, чтобы убить этот поток и создать еще один, но это проблема, потому что, если я убью этот поток таймера с помощью pthread_cancel, когда он ждет мьютекса, я создам тупик, потому что мьютекс находится в состоянии блокировки.
Что делать? Заранее всем спасибо.