Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up closing all file descriptors in the child process (Fixes #835) #846

Merged
merged 1 commit into from
Jun 28, 2024

Conversation

jonahgraham
Copy link
Member

This commit adds to #840 7bd8d52 to apply the same fix to another place that does the same operation on all fds.

When _SC_OPEN_MAX (max nr of open files limit per process) is a very big number, then closing all possible file handles can take a while. This change first tries to use the syscall close_range() if available, falling back to use /proc/self/fd to close only open file handles, and lastly falling back to the old way of closing all possible handles one after another.
In general, the first or second approach should be available which speeds up the pty spawning.

Refs JetBrains/pty4j#147
Copied from JetBrains/pty4j@04685d8 (which is EPL 1.0)

…ipse-cdt#835)

_This commit adds to eclipse-cdt#840 7bd8d52 to apply the same fix to
another place that does the same operation on all fds._

When _SC_OPEN_MAX (max nr of open files limit per process) is a very
big number, then closing all possible file handles can take a while.
This change first tries to use the syscall close_range() if available,
falling back to use /proc/self/fd to close only open file handles,
and lastly falling back to the old way of closing all possible handles
one after another.
In general, the first or second approach should be available
which speeds up the pty spawning.

Refs JetBrains/pty4j#147
Copied from JetBrains/pty4j@04685d8
(which is EPL 1.0)

Co-authored-by: Sergey Simonchik <sergey.simonchik@jetbrains.com>
@jonahgraham jonahgraham added this to the 12.0.0 milestone Jun 27, 2024
@jonahgraham jonahgraham merged commit 3875408 into eclipse-cdt:main Jun 28, 2024
5 checks passed
@jonahgraham jonahgraham deleted the fix-closing-all-fds-part2 branch June 28, 2024 00:08
@jonahgraham
Copy link
Member Author

💚 All backports created successfully

Status Branch Result
cdt_11_6

Questions ?

Please refer to the Backport tool documentation

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