LINUX.ORG.RU
Форум — Talks

Вялые гонки

 , ,


0

2

Для !Ъ: Addressing global removal race in Wayland

Для Ъ:
Композитор wayland может добавлять и убирать глобальные объекты налету. Например, таким объектом может быть второй монитор, и при его отключении возникает состояние гонки.

Вопрос к специалистам по костылестроению. А как на самом деле нужно было сделать: чтоб клиент мог крашиться из-за гонки, или чтоб в сервере могла течь память из-за клиента?

★★

А почему клиент вообще должен крашиться? Не существует способа обработать ошибку?

hippi90 ★★★★★
()
Ответ на: комментарий от imul

А других вариантов в принципе не существует?

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

ratvier ★★
() автор топика
Ответ на: комментарий от X512

Не существует.

Зато всё быстро и асинхронно!

Это перпендикулярные вещи, ничто не мешает сделать асинхронно, быстро и безопасно.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

Мешает. Нельзя обрабатывать ошибки в асинхронном протоколе. В случае ошибки происходит рассинхронизация состояния клиента и сервера. Только пересоздание соединения с потерей состояния.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 2)

Что же это я вижу по ссылке? Какие-то унылые костыли в стиле два стула, чтобы подпереть архитектуру. Нужно все это переписать!

goingUp ★★★★★
()

Вопрос к специалистам по костылестроению. А как на самом деле нужно было сделать: чтоб клиент мог крашиться из-за гонки, или чтоб в сервере могла течь память из-за клиента?

Ты какую-то ерунду написал. Впрочем от вайланда кроме ерунды ничего ждать и не следует.

firkax ★★★★★
()

по костылестроению

- сделать виртуальный объект-заглушку, на который биндить всех клиентов, которые теряют реальный. Даже не так, прокси-объект, который внутри СИНХРОННЫЙ!

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от ratvier

Увы, по ссылке я прочесть не смог.

imul ★★★★★
()
Ответ на: комментарий от firkax

Ты какую-то ерунду написал. Впрочем от вайланда кроме ерунды ничего ждать и не следует.

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

ratvier ★★
() автор топика
Ответ на: комментарий от ratvier

Ломать совместимость формата передачи пакетов никто и не предлагал. А подсовывать проге комфортные данные чтоб она корректно работала - норм. То, что они при этом не те, которые «указаны» (кавычки тут обязательны) в спецификациях - плевать.

Мне это напоминает заявления о том что «в иксах нельзя ввести изоляцию». Ведь если на запрос скриншота чужого окна мы вернём не его скриншот, а черный квадрат (или ошибку) - это будет нарушением протокола, который требует чтобы там возвращался именно скриншот. Так вот: плевать. Прога хочет данные - дадим ей данные в том формате как она их ожидает. Больше никаких требований быть не может.

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

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 6)

Пока оно будет готово - снова догадаются, что нужно переписать правильно.

windows10 ★★★★★
()

Сейчас Клод перепишет вейленд на расте и все починится

mrdeath ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)