Как реализовать мьютекс потока с помощью kthread? - PullRequest
6 голосов
/ 31 октября 2011

Я знаю, что мы можем использовать pthread_mutex_init и pthread_mutex_lock для реализации взаимного исключения потоков.Но как я могу реализовать это в модуле ядра с kthread?

1 Ответ

12 голосов
/ 31 октября 2011

Вы не можете использовать функции pthread_mutex_*, так как это вызовы только в пространстве пользователя.В ядре используйте мьютексы, предоставленные linux / mutex.h :

struct mutex my_mutex; /* shared between the threads */

mutex_init(&my_mutex); /* called only ONCE */

/* inside a thread */
mutex_lock(&my_mutex);
/* do the work with the data you're protecting */
mutex_unlock(&my_mutex);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...