LINUX.ORG.RU

может ли модуль ядра блокироваться в точке выхода?


0

0

Linux 2.6.x

в смысле, может ли модуль ядра заблокироваться, допустим, на мьютексе
или семафоре в точке выхода из модуля?

static struct mutex foo_mutex;

static void __exit
foo_exit_module(void)
{
    mutex_lock(&foo_mutex);
    // do something
    mutex_unlock(&foo_mutex);
}

module_exit(foo_exit_module);

ATM мне кажется, что в принципе может, или я не прав?
собственно, сомнение вида "а не зависнит ли все нафик в дедлоке".

// wbr


поясню. есть модули A и B. модуль A предоставляет некий API, через который модуль B может зарегистрировать набор обратных вызовов и модуль A после их вызывает.

проблема в том, что в момент выгрузки модуля B, модуль A где-то внутри себя может все еще использовать импортированные функции модуля B на протяжении какого-то времени. соответственно, модулю B приходится дожидаться момента, когда его калбеки более не используются и только после этого покинуть точку выхода.

// wbr

klalafuda ★☆☆
() автор топика
Ответ на: комментарий от xnix

> ДА. блокировки используются в функциях unregister_xxx()

спасибо. у меня в сущьности были и есть аналогичные подозрения :)

// wbr

klalafuda ★☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.