LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Но не приложение, а его GUI. Ведь если обрывается связь с интернетом, то приложения, использующие его не закрываются тут же сами по себе.

Сеанс должен быть открыт локально. А уже шина устанавливает коннект с другой, удалённой шиной. Если коннект отваливается, приложение просто перестаёт видеть ресурсы другой стороны до переподключения.

Вот так же и с X-сервером надо. Закрылся/упал, ну и пусть, приложение продолжает работать. Запустится новый - приложение переконнектится, и окошки снова появятся.

Даже в случае с X-сервером, падение приложений — не вина протокола, а убогость первой реализации xlib, которая при дисконнекте делала abort().

Ну а потом так и повелось.

Хотя ничего не мешает спокойно обрабатывать этот случай.

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

А именно, по таймеру пытаться установить коннект, а после успешного коннекта тулкит выделяет все нужные ресурсы заново.

Если прикладной код работает с обёртками тулкита, а не с идентификаторами X-ресурсов напрямую, он даже не заметит переподключения.

Всё можно было развивать и избавлять от недоделок в исходном дизайне, а не выкидывать, чтобы потом 10 лет просаживать человеко-часы просто в никуда.

Исходная версия wandrien, :

Но не приложение, а его GUI. Ведь если обрывается связь с интернетом, то приложения, использующие его не закрываются тут же сами по себе.

Сеанс должен быть открыт локально. А уже шина устанавливает коннект с другой, удалённой шиной. Если коннект отваливается, приложение просто перестаёт видеть ресурсы другой стороны до переподключения.

Вот так же и с X-сервером надо. Закрылся/упал, ну и пусть, приложение продолжает работать. Запустится новый - приложение переконнектится, и окошки снова появятся.

Даже в случае с X-сервером, падение приложений — не вина протокола, а убогость первой реализации xlib, которая при дисконнекте делала abort().

Ну а потом так и повелось.

Хотя ничего не мешает спокойно обрабатывать этот случай.

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

А именно, по таймеру пытаться установить коннект, а после успешного коннекта тулкит выделяет все нужные ресурсы заново.

Если прикладной код работает с обёртками тулкита, а не с идентификаторами X-ресурсов напрямую, он даже не заметит дисконнекта.