OneScript icon indicating copy to clipboard operation
OneScript copied to clipboard

При подключенном отладчике зависает чтение stdin

Open arkuznetsov opened this issue 2 years ago • 6 comments

Опишите ошибку При подключенном отладчике зависает чтение stdin

Воспроизведение ошибки

  1. Создать скрипт с кодом:
Поток = Консоль.ОткрытьСтандартныйПотокВвода();
Поток.ТаймаутЧтения = 100;
Чтение = Новый ЧтениеТекста();
Чтение.Открыть(Поток);
Результат = Чтение.Прочитать();
Сообщить(СокрЛП(Результат));
  1. Установить точку останова на строке: Результат = Чтение.Прочитать();
  2. Запустить отладку
  3. После остановки на точке прололжить отладку или шагнуть (нажать F5|F10|F11).
  4. Убедиться, что процесс завис

Ожидаемое поведение Продолжение выполнения скрипта.

Окружение

  • ОС: Windows 10
  • Версия: 1.8.1+

arkuznetsov avatar Dec 29 '22 09:12 arkuznetsov

А откуда поток возьмет входящие данные? С чего ему продолжаться?

EvilBeaver avatar Dec 29 '22 13:12 EvilBeaver

Мы же с тобой пилили "Таймаут", шоб оно само отваливалось при отсутствии входящих.

arkuznetsov avatar Dec 29 '22 13:12 arkuznetsov

Ну тут проблема: если поток висит на чтении системного чего-то, сокета или порта ввода-вывода, то по истечении таймаута ты, кажется, его не сможешь прервать извне

EvilBeaver avatar Dec 30 '22 08:12 EvilBeaver

Не, стоп, тесты проходят, код рабочий. Проблема только при подключенном отладчике. Или я не правильно тебя понимаю?

arkuznetsov avatar Dec 30 '22 11:12 arkuznetsov

Я скорее про то, что добиться работы под отладчиком без режима RunInTerminal не факт что вообще удастся

EvilBeaver avatar Dec 30 '22 15:12 EvilBeaver

В копилку к #580

EvilBeaver avatar Dec 31 '22 06:12 EvilBeaver