Чудесное про Python
Nov. 27th, 2009 01:56 amЕсть у меня два приложения на PyGTK, которыми я активно пользуюсь — это Gajim и Quodlibet. Всем они хороши в плане функционала, если бы так не тормозили. Особенно Gajim, у которого на подключение и прожёвывание ростера на 450 контактов уходит минуты две. Quodlibet тоже не сильно отстаёт, тратя на переключение песни иногда по полминуты (хотя, с базой на 15к треков в то же время работает вполне сносно — поиск during typing раздражения не вызывает, как и довольно шустрая переиндесация). Собственно, чудесное начинается, если случайно нажать и долго не отпускать кнопку next track (коея имеется у меня на передней части ноутбука и коюю я эпизодически подобным образом нажимаю пряжкой/пузом). Как следствие, генерируется куча keypress events, которые толпой валятся quodlibet'у. Который реагирует и начинает со всей своей неспешностью в плане переключения треков их обрабатывать. Что — внимание — лочит весь PyGTK, как следствие, весь gajim в том числе (ввиду того, что крутится он одним процессом, как и quodlibet). Через некоторое время от такого безобразия gajim таки не успевает обрабатывать сетевые сообщения и его начинает вышибать с серверов по таймауту. Что он как только может так и обнаруживает и начинает переподключаться, попутно завешивая quodlibet, судорожно пытающий переключать треки... В общем, если хотя бы одного из них не прибить, то феерия сия может затянуться ну очень на долго.