The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Локальная root-уязвимость в подсистеме inotify ядра Linux"
Отправлено Ordu, 15-Авг-17 19:29 
>[оверквотинг удален]
>> сильно надуманно, но думаю степень можно опять), мы сохраняем на диск,
>> а второй поток начинает читать от туда, но первый ещё не
>> досохранял. Такое вот rust никак не отследит.
>> А то что у вас, это просто переменная в памяти, которая в
>> двух потоках трогается. Такое "ещё в школе проходят", хотя не спорю,
>> случайно где-нибудь наступить можно.
> При всём при этом, возникает вопрос, придется ли мучится, если реально логикой
> эти потоки разделены, то есть одновременное выполнение кода не возможно, потому
> что второй поток уснул в ожидание. Я так понял, rust за
> такое будет пинать

На такие случаи есть RefCell. RefCell сам по себе immutable объект (а значит можно одновременно иметь много ссылок на него), но если его попросить, то он выдаст mutable ссылку на содержащийся в нём объект. При этом он выполнит в рантайме проверки того, что в любой момент времени существует только одна mutable ссылка на объект. По сути, этот RefCell -- это те же проверки, которые выполняет компилятор, отличие в том, что они выполняются в рантайме, а не во время компиляции. Если логические допущения о том, что одновременное выполнение кода невозможно, окажутся неверными, то поток вывалится в панику.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру