вторник, 8 февраля 2011 г.

Правильное завершение работы под wine

Многие пользователи linux рады бы использовать FlylinkDC++, но работа с ним под wine связана с рядом сложностей. С версий wine 1.1.42 появилась проблема нормального завершения работы FlylinkDC++ (и других на движке DC++, например, StrongDC++). После исчезновения главного окна процессы FlylinkDC.exe и wineserver продолжают работать и грузить процессор.

Причиной зависания является блокирование сокета UDP. Это известная ошибка wine, уходящая корнями в linux.

Чтобы повторить зависание нужно:
  1. Переключить FlylinkDC++ в активный режим работы
  2. Выйти из FlylinkDC++ через меню Файл->Выход
Результат будет такой: 
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12329 skazochn 40 0 1587m 24m 9176 S 37.5 1.6 0:07.03 FlylinkDC.exe
12332 skazochn 40 0 18192 15m 672 S 31.6 1.0 0:07.13 wineserver


Завершить повисшие приложения можно командой wineserver -k.


Ревизией 6132 ошибка была исправлена. Проверена нормальная работа под wine 1.3.13.


Здесь можно скачать и протестировать работу под wine у себя:
FlylinkDC-x86-r500-beta80-build-6134-07-Feb-2011-22-33.zip (16.95 МБ)

В комментариях интересуют опыты запуска и завершения приложения. Указывайте версию wine, чтобы можно было повторить испытание.


P.S.: На ранних версиях wine (например, 1.1.8) ошибка не возникает.
Отправить комментарий