-
Notifications
You must be signed in to change notification settings - Fork 7.3k
fix: use CREATE_NO_WINDOW so Windows hook miner spawns don't flash a console (#1783) #1848
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
Open
eldar702
wants to merge
1
commit into
MemPalace:develop
Choose a base branch
from
eldar702:fix/1783-create-no-window
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+22
−10
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change replaces
DETACHED_PROCESSwithCREATE_NO_WINDOWto prevent console flashing on Windows. However, the exact same pattern of usingDETACHED_PROCESSis present inmempalace/daemon.pyinside_detached_kwargs(line 978):According to the repository's general rules, when addressing a common issue or pattern that is present in multiple sibling implementations across the codebase, we should avoid applying a one-off fix to a single instance. Instead, we should maintain repository-wide consistency by deferring the fix to a dedicated change that addresses all occurrences together.
References
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for flagging this. I looked at
daemon.py's_detached_kwargs, and I think the two cases are genuinely different rather than one shared pattern:hooks_cli.py._detached_popen_kwargsspawns a short-lived hook child and does not redirect stdout/stderr to a file. The bug (Stop hook hangs on Windows: missing process.exit(0) after stdout.write in mempalace-stop.js #1268 / Windows: hook-spawned miner flashes visible console windows - DETACHED_PROCESS should be CREATE_NO_WINDOW in _detached_popen_kwargs #1783) was thatDETACHED_PROCESSon Windows left the parent holding the inherited stdout/stderr handles → Stop-hook hangs.CREATE_NO_WINDOWremoves the console flash while still letting the hook exit.daemon.py._detached_kwargsspawns a long-running daemon that redirects stdout/stderr to a log file (so there is no inherited-handle hang), and it intentionally wants full detachment to survive the parent exiting —DETACHED_PROCESS(+start_new_session=Trueon POSIX) is the correct choice there. Swapping it toCREATE_NO_WINDOWwould actually regress the daemon: it would create a hidden console and drop the no-console/detached semantics a daemon needs.So the differing flag is intentional and load-bearing, not a one-off instance of a common pattern. I'd rather keep this PR scoped to the hook-spawn path; happy to add a short comment on the daemon side documenting why it keeps
DETACHED_PROCESSif that'd help future readers.