Skip to content

Жесткие лимиты и закрытие stdin#147

Merged
eeWynell merged 5 commits intomasterfrom
feat-hard-limit
Dec 23, 2025
Merged

Жесткие лимиты и закрытие stdin#147
eeWynell merged 5 commits intomasterfrom
feat-hard-limit

Conversation

@eeWynell
Copy link
Copy Markdown
Collaborator

Жесткие лимиты

Раньше любой мог заслать условный sleep(1000000) и тогда время в user mode не считалось бы и процесс висел бы вечно и забивал бы очередь. Сейчас добавлен жесткий лимит, который убивает процесс через промежуток обычного человеческого времени, равный 10 установленным лимитам CPU-времени.

Закрытие stdin

Раньше был непонятный баг, который не позволял закрыть stdin методом CloseWrite - если сделать это, stdout почему-то был пустой. Я все еще не понял, почему так происходило. Stdin не закрывался, поэтому тестовые данные для успешного на них запуска должны были заканчиваться на \n, чтобы посылки были уверены, что данные введены полностью. А если посылка хотела прочитать больше чисел, чем выдавалось (при баге в коде посылки, например), то она зависала намертво в ожидании следующего числа.

Сейчас же я случайно наткнулся на параметр при создании контейнера - StdinOnce. Когда его указал, CloseWrite заработал нормально.

@eeWynell eeWynell merged commit 7748ccb into master Dec 23, 2025
2 checks passed
@DIvanCode DIvanCode deleted the feat-hard-limit branch December 25, 2025 12:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants