История изменений
Исправление
gaylord,
(текущая версия)
:
В ядре есть много чего сложного. Оно, конечно, хайлоад как хайлоад, но довольно плохо понятно, какую функцию и когда можно вызывать и как не попасть под дедлок в общем случае.
Литерали любой сишный код с тредами.
Не всегда понятно, какой код под каким локом отрабатывает. Вообще, где можно мьютекс, где RCU, а где и спинлока хватит — это тонкий вопрос, который каждый решает ad hoc.
Это вопросы контекстов, все так. Но для этого есть аннотации и lockdep, __must_hold и друзья.
P.S. И как раз вот эту всю срань Rust очень хорошо упрощает.
Исправление
gaylord,
:
В ядре есть много чего сложного. Оно, конечно, хайлоад как хайлоад, но довольно плохо понятно, какую функцию и когда можно вызывать и как не попасть под дедлок в общем случае.
Литерали любой сишный код с тредами.
Не всегда понятно, какой код под каким локом отрабатывает. Вообще, где можно мьютекс, где RCU, а где и спинлока хватит — это тонкий вопрос, который каждый решает ad hoc.
Это вопросы контекстов, все так. Но для этого есть аннотации и lockdep, __must_hold и друзья.
P.S. И как вот эту всю срань Rust очень хорошо упрощает.
Исходная версия
gaylord,
:
В ядре есть много чего сложного. Оно, конечно, хайлоад как хайлоад, но довольно плохо понятно, какую функцию и когда можно вызывать и как не попасть под дедлок в общем случае.
Литерали любой сишный код с тредами.
Не всегда понятно, какой код под каким локом отрабатывает. Вообще, где можно мьютекс, где RCU, а где и спинлока хватит — это тонкий вопрос, который каждый решает ad hoc.
Это вопросы контекстов, все так. Но для этого есть аннотации и lockdep, __must_hold и друзья.