curses в python getstr () при обновлении - PullRequest
4 голосов
/ 20 декабря 2011

Я пишу интерфейс для серверного приложения, используя модуль curses.Основные окна, возвращаемые проклятиями, разделены на 2 подокна.Верхняя половина экрана печатает выходные данные с сервера, а нижняя строка - с помощью window.getstr ().Иногда, когда я ввожу текст и верхняя половина обновляется, весь экран сходит с ума от случайных символов, заменяющих существующие символы.Есть ли конкретная причина для этого или это ошибка проклятия?

1 Ответ

4 голосов
/ 20 декабря 2011

Я предполагаю, что вы используете поток для обновления верхнего экрана, пока window.getstr () запускается в основном потоке?

Если это так, проблема в том, что состояние терминала curses является общим ресурсомэто не может быть обновлено из двух разных потоков одновременно.Вам необходимо перевести терминал в неблокирующий режим, использовать window.getch () для создания входной строки, и ваш поток должен передать задачу обновления верхнего окна в основной поток.

...