Thread-safe Far API

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Thread-safe Far API

Post by DrKnS »

Господа, умеющие и любящие писать многопоточные плагины.

Требуется в целях эксперимента взять вот это и сунуть пальцы в розетку прислониться к дверям вагона встать под стрелой насоздавать в своём плагине потоков, из которых активно повызывать диалоги, редакторы, вьюверы, справку, контрол, адвконтрол (и т. п.) и инако поглумиться над здравым смыслом и устройством местной вселенной.

Повызывать, разумеется, напрямую, не через ACTL_SYNCHRO.

И, конечно же, поделиться результатами.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Thread-safe Far API

Post by Maximus5 »

а дебажную версию как-нть организовать можно?
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Thread-safe Far API

Post by Maximus5 »

Зависание с ECompl. , фар без макросов ("C:\Program Files\FAR.EMPTY\Far.exe" /m)

Открываем Shift-F4 новый (пустой) файл (например D:\1.txt)
Вводим "FAR". При нажатии "R" - зависание. На экране только "FA"

PS. На ночной 1590 - зависания нет
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Thread-safe Far API

Post by DrKnS »

Maximus5 wrote:а дебажную версию как-нть организовать можно?
Можно.
Зависание с ECompl
Он там сам пытается синхронизировать, ожидая в основной нити дополнительную. А в дополнительной — внезапно — фар ждёт основную. Дедлок коротче.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

ThreadSafe api & OpenFilePluginW?

Post by Maximus5 »

Господа разработчики, поправьте меня, если я ошибаюсь...
При стандартном поиске файлов с включенным флажком "[x] Search in archives"
FAR начинает вызывать плагины для попыток открытия файлов.
Но вызывает он их в то время, когда в Manager::ExecuteModal крутится .
Насколько я вижу, синхронизацией с основным потоком в этот момент findfile.cpp не занимается.
Post Reply

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