Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.HUSKY
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.HUSKY с датами от 16 Jul 13 10:00:06 до 04 May 24 09:45:34, всего сообщений: 5323
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 4587 из 5323 ========================================= RU.HUSKY =
От   : Nil A                            2:5015/46          07 Nov 21 21:59:40
Кому : Stas Mishchenkov                                    07 Nov 21 21:59:40
Тема : src/pktwrite.c: openPktForAppending - race condition
FGHI : area://RU.HUSKY?msgid=2:5015/46+618824d6
На   : area://RU.HUSKY?msgid=2:460/5858+61881d83
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.HUSKY?msgid=2:460/5858+618aa216
==============================================================================
Hello, Stas!

Sunday November 07 2021 21:38, from Stas Mishchenkov -> Alexey Vissarionov:

SM>>> Можно, но я отказался из-за коллизий с тоссером.
SM> Я отказался от hpt post.

У тебя тоссер не HPT?
Вроде hpt post должен хватать общехасковский лок, тогда hpt toss будет ждать.

AV>> Правильную методику я уже вкратце описал.
SM> Я примерно так и делаю, только собственной перлятиной.

Не всё так гладко c rename(), есть две проблемы.

1. rename(2) не сработает, если на разных файловых системах, иначе тогда переименование превратиться в копирование+удаление файла - не атомарная операция. Если ты "переименовываешь" с tmpfs, то это как раз та самая ситуация.

2. rename(2) всегда затирает целевой файл, а мы можем не угадать с уникальностью имени .pkt. В современном линуксе есть renameat2(2) с опцией RENAME_NOREPLACE, но как быть с другими POSIX системами? Как быть с вендой?
Отсутствие renameat2(2) раньше компенсировали путём вызовы link(2) для создания hard link, тогда он возвращал EEXIST, если уже существует целевой файл. Такой способ закрывал все POSIX системы. Но как быть с вендой?

Геморой, геморой, ...
Concurrency (multithreading and multiprocessing) - это сложная тема.
Multiplatform support - это сложная тема.
Concurrency + Concurrency = Pi3дец сложность.

Best Regards, Nil
--- GoldED+/LNX 1.1.5
* Origin: Linux 2.6.32-042stab145.3 (2:5015/46)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.039835 секунды