-
-
Notifications
You must be signed in to change notification settings - Fork 652
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
create nested exiter-contextmanager
s
#7597
Comments
exiter-contextmanager
s within LocalPantsRunner#_run()exiter-contextmanager
s in the DaemonPantsRunner
and LocalPantsRunner
interaction
exiter-contextmanager
s in the DaemonPantsRunner
and LocalPantsRunner
interaction exiter-contextmanager
s
stuhood
pushed a commit
that referenced
this issue
May 13, 2020
### Problem The setup and teardown of each request made to the nailgun server in `pantsd` had become quite complicated over time... and consequently, slower than it needed to be. ### Solution Port `pantsd`'s nailgun server to rust using the `nails` crate. Additionally, remove the `Exiter` class, which had accumulated excess responsibilities that can instead be handled by returning `ExitCode` values. Finally, fix a few broken windows including: double logging to pantsd, double help output, closed file errors on pantsd shutdown, and redundant setup codepaths. ### Result There is less code to maintain, and runs of `./pants --enable-pantsd help` take `~1.7s`, of which `~400ms` are spent in the server. Fixes #9448, fixes #8243, fixes #8206, fixes #8127, fixes #7653, fixes #7613, fixes #7597.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Problem
Currently, when
DaemonPantsRunner
callsLocalPantsRunner
it passes in aDaemonExiter
increate
(pants/src/python/pants/bin/daemon_pants_runner.py
Line 323 in c443c45
LocalExiter
withinset_start_time()
(pants/src/python/pants/bin/local_pants_runner.py
Line 231 in f555ff2
pants/src/python/pants/bin/daemon_pants_runner.py
Line 331 in c443c45
The issue is when we try to call
self._exiter.exit()
in any of the other method paths such aspants/src/python/pants/bin/daemon_pants_runner.py
Line 334 in c443c45
self._exiter
instance has already been replaced. (Workarounds have been used to reset the exiter but this isnt scalable).Solution
Create nested
exiter-contextmanager
s in theDaemonPantsRunner
andLocalPantsRunner
interactionResult
happy exiting!
The text was updated successfully, but these errors were encountered: