Far 3 & SettingsControl

Место, где разработчики плагинов могут поделиться своим опытом.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Far 3 & SettingsControl

Post by Shmuel »

Latest post of the previous page:

DrKnS wrote: Sat 15 Dec, 2018 18:14 Можно узнать, зачем вы держите у себя код, который не работает?
А что неправильного делает этот код, который не работает?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Far 3 & SettingsControl

Post by DrKnS »

Shmuel wrote: Sat 15 Dec, 2018 18:35А что неправильного делает этот код, который не работает?
Вы его не показываете, поэтому сложно что-то утверждать.
Исходя из схожести симптомов со случаем, описанным ранее John Doe - возможно, пытается открыть уже эксклюзивно кем-то (в т.ч. собой) открытую базу. Или я не прав и всё совсем иначе?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Far 3 & SettingsControl

Post by Shmuel »

DrKnS wrote: Sat 15 Dec, 2018 18:51 возможно, пытается открыть уже эксклюзивно кем-то (в т.ч. собой) открытую базу
Ну да, только в Far API разве можно открыть базу не эксклюзивно?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Far 3 & SettingsControl

Post by DrKnS »

Сейчас - нельзя, поэтому я и интересуюсь - зачем вам ускорять код, который всё равно не работает?

Если из plugsettings.cpp выкинуть PluginsCfg->BeginTransaction() и PluginsCfg->EndTransaction() - скорее всего, будет можно, но настройки, наверное, будут сохраняться несколько дольше. Или не дольше. Или в пределах погрешности, кто его знает.

Последний раз, как я понимаю, с этим экспериментировал t-rex, 21.03.2011, build 1924.
Возможно, за 8 лет SQLite оптимизировали (ну или железо догнало) и все эти приседания уже неактуальны.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Far 3 & SettingsControl

Post by Shmuel »

DrKnS wrote: Sat 15 Dec, 2018 19:14 зачем вам ускорять код, который всё равно не работает?
Мне не ускорять надо, и код у меня, как правило, работает (это в ответ на вопрос, зачем я держу у себя неработающий код) :)
Но есть такая штука, как экспериментирование с кодом, при котором возможны любые ситуации.

То, что сейчас принудительная эксклюзивность, мне не нравится. Предпочёл бы, например, добавление в API команд SCTL_BEGIN и SCTL_COMMIT (не обязательных для применения). Но да ладно, переживём.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Far 3 & SettingsControl

Post by DrKnS »

Shmuel wrote: Sat 15 Dec, 2018 19:26То, что сейчас принудительная эксклюзивность, мне не нравится. Предпочёл бы, например, добавление в API команд SCTL_BEGIN и SCTL_COMMIT.
Я так и хотел сделать для решения 0002940. Но zg, например, считает, что это слишком низкоуровнево.
Я не писал плагинов, использующих SettingsControl, поэтому настаивать не стал.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Far 3 & SettingsControl

Post by Shmuel »

Не так давно сильно критиковалась функция far.FreeSettings(). А ведь, фактически, это единственный способ закрыть хэндлы, созданные, но не закрытые какими-то (да, кривыми) макросами. А иначе, доступ к Settings Control для всех прочих макросов будет перекрыт (в плохом варианте - вплоть до перезагрузки Фара).
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Far 3 & SettingsControl

Post by DrKnS »

Shmuel wrote: Sat 15 Dec, 2018 19:58это единственный способ закрыть хэндлы
Это, всё же, слишком грубо и кто-то потом, с ненулевой вероятностью и неизвестными последствиями, обломается.
доступ к Settings Control для всех прочих макросов будет перекрыт
Если архитектурно все макросы живут в одном плагине - несомненно.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Far 3 & SettingsControl

Post by Shmuel »

DrKnS wrote: Sat 15 Dec, 2018 20:41
доступ к Settings Control для всех прочих макросов будет перекрыт
Если архитектурно все макросы живут в одном плагине - несомненно.
Но это всего лишь следствие искусственно навязанной эксклюзивности доступа к базе.
Что касается воображаемой (или неизвестно кем используемой) архитектуры, при которой макросы живут в разных плагинах, это представляет теоретический интерес. Практически я с этим не встречался.
Post Reply

Return to “Разработка плагинов”