The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Представлена библиотека Aya для создания eBPF-обработчиков на языке Rust, opennews (ok), 16-Июн-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


14. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +1 +/
Сообщение от lockywolf (ok), 16-Июн-21, 12:14 
> Как обычно, надо полагать. Data race исключаются как класс, пока ты не
> прибегаешь к unsafe, а остальное всё в твоих руках. А почему
> ты спрашиваешь? Есть основания полагать, что у него ситуация с thread-safety
> отличается от дефолтной в расте?

Ну, я помню смешные курьёзы с errno, который в стандарте переменная, но для thread-safety сделано как макрос, разворачивающийся в вызов функции. Интересно, помнили ли об этом растовики, когда писали свой crate.

Ответить | Правка | Наверх | Cообщить модератору

15. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Ordu (ok), 16-Июн-21, 12:38 
> Ну, я помню смешные курьёзы с errno, который в стандарте переменная, но
> для thread-safety сделано как макрос, разворачивающийся в вызов функции.

Чё за курьёзы? Я не помню. Мне было бы интересно посмотреть, как кто-то не справился не заметить таких нюансов.

> Интересно, помнили
> ли об этом растовики, когда писали свой crate.

А, ну это общая проблема создания safe API поверх unsafe операций. Тут она несколько осложняется тем, что там unsafe будет во все поля из-за интерфейса с внешним кодом, который rustc не может проанализировать на safety, и поэтому на всякий случай считает unsafe. То есть, в unsafe будет заворачиваться слишком много, и поэтому придётся проявлять чудеса умения обходить грабли.

Да, вероятность косяков повышена. Тут ты прав.

Ответить | Правка | Наверх | Cообщить модератору

19. "Представлена библиотека Aya для создания eBPF-обработчиков н..."  +/
Сообщение от Аноним (19), 16-Июн-21, 13:29 
```
__thread int errno;                                                            
extern __thread int __libc_errno __attribute__ ((alias ("errno"))) attribute_hidden;
```
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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