range-based for в C++ выглядит безопасным местом, пока в него не попадает временный объект с внутренней ссылкой. Такой код может годами работать в продакшене, а затем начать читать освобождённую память после смены компилятора или настроек сборки. В статье разбирается, как C++23 изменил время жизни временных объектов в таких циклах, почему поддержка стандарта зависит от компилятора и какие проверки помогут найти проблемные места в кодовой базе. Узнать детали
️ Эта статья берет за основу Go 1.14.Go предоставляет механизмы синхронизации памяти, такие как канал (channel) или мьютекс (mutex ), которые помогают решать различные проблемы. Касательно разделяемой памяти, мьютекс защищает память от гонки данных. Однако, несмотря на существование двух типов мьютексов, в целях повышения производительности Go также предоставляет атомарные примитивы памяти в пакете atomic. Но давайте сначала вернемся к гонкам данных, прежде чем углубляться в решения. Читать далее
Я часто слышу от пробующих работать с Rust системных программистов жалобы на мьютексы и особенно на Rust Mutex API. Жалобы обычно выглядят так: Они не хотят, чтобы мьютекс содержал данные, только блокировку. Они не хотят управлять «защитным» значением, разблокирующим мьютекс при сбросе,
Bassday Range Vib 80ES — воблеры, относящиеся к классу приманок «ратлины». Как и большинство приманок подобного типа, RANGE VIB выполнен в тонущем варианте исполнения. Он обладает высокочастотной, низкоамплитудной игрой. Воблер отлично держит струю и не сбивается при работе на сильном течении и глубине.Это чрезвычайно уловистые приманки. Приманка Bassday Range Vib 80ES, изначально созданная для ловли […]