> Например у каждого потока может быть указатель на массив в который он пишет. Параллельно. Но эти сегменты (array[x], array[y]) никогда не пересекаются. Это может быть ring buffer.
> Но при этом каждый поток может читать данные других потоков.
> Теперь возможно что поток прочитает недозаписанные данные другого потока. Это решается с помощью read-write mutex для каждого сегмента.Ладно, возможно у тебя очень специфическая задача. Сколько таких в ядре линукса?
Нужно ли отказываться от дополнительного языка если на нем сложно/невозможно сделать такую конструкцию?
> Например тебе нужна хэш-таблица с поддержкой диска. Пишешь свою родненькую. Там пишут все лучшие величайшие программисты мира (поднимаю ставки троллинга 😆), во всех базах данных свои структуры данных, даже свои мьютексы.
> Или авторы MySQL, PostgreSQL и MSSQL это васяны со своими велосипедами?
Парирую троллинг пруфами)
выполнения кода при обработке в СУБД SQLite определённым образом оформленных SQL-конструкций https://www.opennet.ru/opennews/art.shtml?num=52084
Критическая root-уязвимость в MySQL https://www.opennet.ru/opennews/art.shtml?num=45127
> Я ожидал большего от фанатиков Rust.
Вот только фанатиком тут выглядишь ты.
У тебя есть супер "особенная" задача. Которая судя по описанию, мало кому нужна за пределами баз данных. И ты "мая задачка не решается языком! плак плак! Раст плохой"
Причем в качестве альтернативы приводишь Зиг на сайте которого прямо пишут https://ziglang.org/learn/overview/
Please note that Zig is not a fully safe language
Multithreading safety and race detection are areas of active research.
Более того говорят что operator overloading это плохо... ну удачи им в большом проекте)
In order to accomplish this, Zig programmers must manage their own memory, and must handle memory allocation failure.
А дефер-то оказывается есть? А как же "no hidden control flow"! Неужели они пошли против своих принципов.
In addition to A fresh take on error handling, Zig provides defer and errdefer to make all resource management - not only memory - simple and easily verifiable.
Т.е писать ты будещь в СИ стиле, память менеджить ручками (привет ошибки), только сменится интаксиc языка. Ну и нафиг менять шило (СИ) на мыло (Зиг) ?
Думаю мейнтейнары ядра тоже так подумали.