Быстрая отмена Network Browser'а

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Post Reply
User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

Быстрая отмена Network Browser'а

Post by techie » Wed 11 Dec, 2013 08:31

Code: Select all

     ╔══════ Please wait ══════╗
     ║ Scanning the network... ║
     ╚═════════════════════════╝
Network Browser останавливает всю работу на минуту или
около того, если нечаянно вызвать его без подключения
к локалке или с подключением к пустой сети.

ESC не срабатывает. Проще закрыть Far и открыть новый,
чем выжидать тайм-аут. Вопрос. Можно ли сделать процесс
опроса сети асинхронным, чтобы ввод не блокировать и
дать возможность пользователю быстро отменить вызов?

Есть кусок кода на Python+WinAPI для асинхронного ввода:
https://bitbucket.org/techtonik/async-console-input

Как на C++ переписать, я не знаю.

User avatar
Xerox
Posts: 258
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 251 times
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by Xerox » Wed 23 Oct, 2019 13:06

Согласен с идеей, вообще никакого интерфейса (аж прямо) запланированно зависающего на неопределенное количество времени быть не должно быть в природе.

User avatar
Xerox
Posts: 258
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 251 times
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by Xerox » Thu 31 Oct, 2019 20:02

Похоже что установка Interface.Completion.UseFilesystem в false или other решает проблему сетевых затыков, равно как и медленных дисков

User avatar
John Doe
Бюрократ
Posts: 12533
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 237 times

Быстрая отмена Network Browser'а

Post by John Doe » Thu 31 Oct, 2019 21:07

@Xerox
Не надо копировать сообщения в разные темы без разбора.

Это бессмысленная и бесполезная активность.

User avatar
Xerox
Posts: 258
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 251 times
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by Xerox » Fri 01 Nov, 2019 09:36

John Doe,
Согласен что я тут скопировал не совсем по теме, хоть и считаю что близко к теме.
Мне кажется польза людям могла бы быть, потому что эта конфигурация малоизвестна, и если бы я ее знал раньше, то меньше бы мучился
Ну буду осторжнее, Ок.

Так что насчет отмены браусинга сети, есть надежда?

User avatar
John Doe
Бюрократ
Posts: 12533
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 237 times

Быстрая отмена Network Browser'а

Post by John Doe » Fri 01 Nov, 2019 10:31

Xerox wrote:
Thu 31 Oct, 2019 20:02
скопировал не совсем по теме,
Совсем не по теме.

А надежды нет. Опенсорс он такой — сделай сам.

User avatar
Xerox
Posts: 258
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 251 times
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by Xerox » Fri 01 Nov, 2019 10:34

John Doe,
Ну.. на том и стоим, на "сделай сам" :)
A "закрытый сорс" ничем не лучше, и совсем глухо, он же закрытый
Last edited by Xerox on Fri 01 Nov, 2019 10:34, edited 1 time in total.

AsX
Posts: 22
Joined: Fri 28 Jan, 2011 20:39
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by AsX » Wed 27 Nov, 2019 16:22

Я кстати пробовал, но нам слишком нетривиально с испольуемым функционалом. Я там вынес функции сетевых запросов в отдельные threads но по отмене (Esc) не убивал их (что для сетвых ресурсов вредно) а давал им умереть своей смертью. Оно в общем работало, но были глюки, например при закрытии Фара если неубитый thread висел, то была задержка, хотя и не такая длинная.

User avatar
Xerox
Posts: 258
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 251 times
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by Xerox » Wed 04 Dec, 2019 09:13

AsX, Крута!!
Я так понимаю это ты поменял какой-то .CPP и скомпилировал?
Я согласен на такое решение, в C++ я слабоват, но скомпилировать готовое могу я думаю
Пусть даже подвиcает при выходе.
И может уже следующим этапом совместными усилиями придумаем как убивать треады на выходе

PS
А чем убитые треды это вредно для ресурсов?
Что не закрывает connection, который остается висеть на сервере к которому было обращение?
Так это пофиг, они по таймауту в 15 минут сами подыхают,
Last edited by Xerox on Wed 04 Dec, 2019 09:26, edited 2 times in total.

AsX
Posts: 22
Joined: Fri 28 Jan, 2011 20:39
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by AsX » Thu 05 Dec, 2019 16:49

Xerox wrote:
Wed 04 Dec, 2019 09:13
Пусть даже подвиcает при выходе.
И может уже следующим этапом совместными усилиями придумаем как убивать треады на выходе
А я это тоже пробовал, но там все равно какая-то задержка, видимo Винда какие-то ресурсы не может сразу освободить при снятии процесса и чего-то ждет.

Там еще с сообщениями глюки, типа после Esc приходится возвращать какую-то ошибку и ФАP может выдавать какие-то левые сообщения типа "Cannot browse network. The operation completed successfully" . А может не выдавать. То есть оно как-то не consistent.

Могу прислать DLLку попробовать.

User avatar
zg
zero-gravity
Posts: 5652
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 115 times
Contact:

Быстрая отмена Network Browser'а

Post by zg » Thu 05 Dec, 2019 17:50

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

User avatar
Xerox
Posts: 258
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 251 times
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by Xerox » Thu 05 Dec, 2019 18:04

zg wrote:
Thu 05 Dec, 2019 17:50
убивание потока убивает поток. грубо говоря сетевая операция не убивается и пока оно само не закончится все новые операции будут ждать. т.е. в варианте случайно зашёл и больше не собираюсь — это лучше чем сейчас, во всех остальных случаях — хуже.
А где живет сетевая операция?
думаю что в нашем случае (убивание треда) остается жить (в неведении) только ее серверный конец.
Получается что на сервер, правильно?
Т.е. сервер не знает что клиент сдох, и держит connection чего-то ожидая, так?
Почему я спрашиваю, потому что получается клиенту надо сделать две вещи:
1.) Убить треды
2.) Послать сигнал завершения connection

Происxодит само собой:
3.) Завершение connection сервером по таймауту (15 мин стандарт)

Где я не прав?

И это, почему это остальные клиенты на том же хосте должны ждать завершения connections (== ждать операций в вашей терминологии?)
других клиентов? подозреваю что это не совсем так..

Да, если открыть ФАР, зайти в сеть, закрыть 1000 раз, то в ближайшие 15 минут будут 1000 connections,
Но это не слишком реалистичный сценарий я думаю
(а через 15 минут все сами сдохнут по-любасу)

PS
Для уточнения, можно ли спросить что это за сетевые операции которые стоят строго в очереди?
Или вы имели ввиду connections? (я это предположил, но уточняю)

Насколько я знаю, .. впрочем не важно, посланная ДЛЛ годится для эксперимента который даст все ответы:
1.) Открыть ФАР, зайти в сеть, убить ФАР, Х 10 раз, и посмотреть как поживают connections, и можно ли пользоваться сетью все еще
2.) ФСЕ
Last edited by Xerox on Thu 05 Dec, 2019 18:12, edited 5 times in total.

User avatar
Xerox
Posts: 258
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 251 times
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by Xerox » Thu 05 Dec, 2019 18:15

AsX wrote:
Thu 05 Dec, 2019 16:49
Там еще с сообщениями глюки, типа после Esc приходится возвращать какую-то ошибку и ФАP может выдавать какие-то левые сообщения типа "Cannot browse network. The operation completed successfully" . А может не выдавать. То есть оно как-то не consistent.
на мой вгляд пусть выдает все что угодно, лишь бы не висел в сети и закрывался хоть как-то, ну и жесткий kill зависщей проге еще никто не отменял

AsX
Posts: 22
Joined: Fri 28 Jan, 2011 20:39
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by AsX » Thu 05 Dec, 2019 18:44

zg wrote:
Thu 05 Dec, 2019 17:50
убивание потока убивает поток. грубо говоря сетевая операция не убивается и пока оно само не закончится
А при убивании всего процесса?

User avatar
DrKnS
Posts: 5430
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 251 times

Быстрая отмена Network Browser'а

Post by DrKnS » Thu 05 Dec, 2019 20:14

Inside the Windows Vista kernel: Part 1

Искать в тексте "net view".

AsX
Posts: 22
Joined: Fri 28 Jan, 2011 20:39
Been thanked: 2 times

Быстрая отмена Network Browser'а

Post by AsX » Thu 05 Dec, 2019 21:16

Оно понятно, что есть какой-то новый функционал, но какой - я не понял. Плагин написан на старом, завис там внутри WNetOpenEnum и WNetGetResourceInformation. Если кто знает, чем сейчас нужно пользоваться, то я послушаю. Но скорее всего плагин надо будет полностью переписывать, а я не очень умею.

Post Reply

Return to “Предложения и идеи”