The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз GhostBSD 11.1"
Отправлено Ivan_83, 17-Ноя-17 15:00 
Начнём с того что во фряшечке нет приличного ядерного средства чтобы получать нотификации об изменении файлов в папке.
Те когда софтина добавляет монитор на папку то нужно по хорошему открыть и добавить в kqueue() и папку и каждый файл который там есть, либо по таймеру смотреть что поменялось в папке.
Меня оба варианта не устраивают, ибо это ад, особенно если у тебя папка смонтированна по sshfs на не оч скоростном линке а файлов в папке много.

Дополнительной радостью является то что во фре нет ни флага чтобы открывать без обновления времени доступа ни тем более флага чтобы открывать только для мониторинга изменений.

При этом, чтобы ты понимал, то что есть сейчас:
- было сломано 8 месяцев подряд и никто не чинил, его просто отключили чтобы приложения не падали и я был вынужден жать F5 чтобы понять поменялось вообще что то или нет (как на рабочем столе так и в файловых манагерах). Те ты удалил файл, а он на месте пока F5 не нажмёшь, аналогично с копированием, пермещением и тп
- после починки оно уже года два как роняет все приложения которые это используют при некоторых юзпаттернах, они так и "чинят" этот г.код раз в 3 месяца пытаясь там пару строчек пропатчить
- лично у меня оно почему то приводило к тому, что приложение которое открыто долго (скажем 10 минут юзанья файлового манагера) начинало сжирать одно ядро в полку и становилось не отзывчивым

Поэтому мне глубоко всё равно что и кто там думает, я ненавижу тот г.код который там в либе сейчас и не буду им пользоваться, потому что я не мазохист.
Меня он достал настолько что я потратил пару дней своего личного времени чтобы сделать очень хорошо мне, и мне не жалко этим поделится, а принимают они его или будут и дальше лотать то глючное что там есть - дело их.

Апстриму не понравилось что я обругал в резкой форме их код и они начали придиратся вообще ко всему.
#ifndef O_NOATIME
#    define O_NOATIME    0
#endif
даже вот это их почему то очень огорчило :)
А ещё они хотели чтобы патч был проверен и обкатан мной на всех BSD и маках.
Плюс им не понравилось что я совсем не пользуюсь функциями из глибы, а пользуюсь только системными.
Я не нанимался им их конюшни вычищать, поэтому их глиба гработает на всех BSD системах как и раньше :)

Особенности моего патча:
+ можно легко дебажить в своей апликухе, ибо оно совсем никак не зависит от глибы
+ мизер кода: всего 700 строк
+ пашет быстро, не грузит систему лишними сисколами
- не уведомляет об изменении файлов в мониторящейся папке, только об добавлении/удалении и измении самой папки
- при оч редком юз паттерне жрёт проц (где то раз в месяц или реже натыкаюсь)


Честно говоря там бы добавилось строк ещё не более 100 если бы я начал мониторить все файлы в папке на предмет изменения размера, но меня оба возможных способа напрягают много сильнее чем отсутствие такого мониторинга.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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