Skip to content

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

Merged
jonahgraham merged 1 commit into
eclipse-cdt:mainfrom
jonahgraham:fix-closing-all-fds-part2
Jun 28, 2024
Merged

Speed up closing all file descriptors in the child process (Fixes #835)#846
jonahgraham merged 1 commit into
eclipse-cdt:mainfrom
jonahgraham:fix-closing-all-fds-part2

Conversation

@jonahgraham
Copy link
Copy Markdown
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
@jonahgraham jonahgraham deleted the fix-closing-all-fds-part2 branch June 28, 2024 00:08
@jonahgraham
Copy link
Copy Markdown
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