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

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

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

Post by techie »

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: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

Согласен с идеей, вообще никакого интерфейса (аж прямо) запланированно зависающего на неопределенное количество времени быть не должно быть в природе.
User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

Похоже что установка Interface.Completion.UseFilesystem в false или other решает проблему сетевых затыков, равно как и медленных дисков
User avatar
John Doe
Бюрократ
Posts: 12872
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 293 times

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

Post by John Doe »

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

Это бессмысленная и бесполезная активность.
User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

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

Так что насчет отмены браусинга сети, есть надежда?
User avatar
John Doe
Бюрократ
Posts: 12872
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 293 times

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

Post by John Doe »

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

А надежды нет. Опенсорс он такой — сделай сам.
User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

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 »

Я кстати пробовал, но нам слишком нетривиально с испольуемым функционалом. Я там вынес функции сетевых запросов в отдельные threads но по отмене (Esc) не убивал их (что для сетвых ресурсов вредно) а давал им умереть своей смертью. Оно в общем работало, но были глюки, например при закрытии Фара если неубитый thread висел, то была задержка, хотя и не такая длинная.
User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

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 »

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: 5866
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 155 times
Contact:

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

Post by zg »

убивание потока убивает поток. грубо говоря сетевая операция не убивается и пока оно само не закончится все новые операции будут ждать. т.е. в варианте случайно зашёл и больше не собираюсь — это лучше чем сейчас, во всех остальных случаях — хуже.
User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

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: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

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 »

zg wrote: Thu 05 Dec, 2019 17:50 убивание потока убивает поток. грубо говоря сетевая операция не убивается и пока оно само не закончится
А при убивании всего процесса?
User avatar
DrKnS
Posts: 5673
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 311 times

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

Post by DrKnS »

Inside the Windows Vista kernel: Part 1

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

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