LINUX.ORG.RU

История изменений

Исправление 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 и друзья.