Я пытаюсь понять тип переменной завершения, обычно используемый в ядре Linux (версия Linux 4.9.98-06769-gaf81aea-dirty).
Проблема: Если я вызываю complete ()Метод в переменной завершения перед вызовом метода wait разбивает ядро.
Я искал в Интернете, но не смог найти причину этого.Кто-нибудь, пожалуйста, помогите мне понять это поведение.
Заранее спасибо!
например
int timeout = 100; //100 ms timeout
unsigned long tempJ = msecs_to_jiffies(timeout);
struct completion sema;
init_completion(&sema);
//wait_for_completion_timeout(&sema, tempJ)
complete(&sema)