Войти
ФлеймФорумПроЭкты

Ü (Programmiersprache) (59 стр)

Страницы: 154 55 56 57 58 59
#870
13:30, 28 янв. 2021

Подумываю о реализации (прости, господи) глобальных переменных. Понятно дело, что это зашквар, но иногда оно бывает надо.
Очевидно, что использование глобальных переменных должно быть небезопасным, чтобы только в unsafe блоке можно было к ним обратиться. Но дальше возникают вопросы. Делать ли контроль ссылок для них, или забить и поручить это дело программисту? Что на счёт static переменных в функциях? Что на счёт инициализаторов - позволить ли не-constexpr инициализаторы? Что на счёт thread-local переменных?
Короче, вопросов много, и надо над ними думать.

#871
13:38, 28 янв. 2021

Panzerschrek[CN]
> Очевидно, что использование глобальных переменных должно быть небезопасным,
> чтобы только в unsafe блоке можно было к ним обратиться.
Чтение тоже unsafe будет?

#872
(Правка: 14:41) 14:40, 28 янв. 2021

Vlad2001_MFS
> Чтение тоже unsafe будет?
Обязательно, ибо нет гарантии, что никто в этот же момент не пишет в неё из соседнего потока.

Кстати, а threadlocal в Ю предусмотрен?

#873
14:53, 28 янв. 2021

Delfigamer
> Обязательно, ибо нет гарантии, что никто в этот же момент не пишет в неё из
> соседнего потока
Хм, кстати, да. Я как-то не подумал, каюсь.

#874
15:52, 28 янв. 2021

Panzerschrek[CN]
> Что на счёт thread-local переменных?
На мой взгляд, это костыль, который придумали из-за наличия глобальных переменных в системных API.
Ибо это полный зашквар, пихать во все треды экземпляр какой-то левой переменной, которую они вообще не собираются использовать.

#875
17:47, 28 янв. 2021

Vlad2001_MFS
> Чтение тоже unsafe будет?
Тоже.

Delfigamer
> Кстати, а threadlocal в Ю предусмотрен?
Я в раздумьях.

}:+()___ [Smile]
> полный зашквар, пихать во все треды экземпляр какой-то левой переменной,
> которую они вообще не собираются использовать
Ну так а если переменная одна на все потоки - то это не зашквар?

#876
18:50, 28 янв. 2021

Panzerschrek[CN]
> Ну так а если переменная одна на все потоки - то это не зашквар?
Не зашквар было бы, если бы избавились от глобальной переменной, раз предполагается работа в несколько потоков, а вместо этого воткнули костыль.

Страницы: 154 55 56 57 58 59
ФлеймФорумПроЭкты