- Notifications
You must be signed in to change notification settings - Fork1.3k
修复 main_ctx_init 在特殊情况下误判 oldpid 运行#722
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
House-Men wants to merge1 commit intoithewei:masterChoose a base branch fromHouse-Men:patch-7
base:master
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.
Open
Uh oh!
There was an error while loading.Please reload this page.
Conversation
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
5b59480 toe8b593aComparesupport main_ctx_init custom set run_dir
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
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.
Uh oh!
There was an error while loading.Please reload this page.
在某些特殊条件下存在 上一次进程意外结束导致没有删除pid文件,并且系统重启下次使用时历史残留的pid文件恰好是其他运行中的进程从而导致误判运行中。
Windows我采用的利用被打开占用中的文件无法remove成功特性规避了此类现象。
Unix我采用的利用文件写锁进程互斥特性规避了此类现象。
同时修复了Windows单纯OpenProcess判断进程结束存在误判现象,变更为GetExitCodeProcess + STILL_ACTIVE解决。
另外支持了下 main_ctx_init 自定义设置 run_dir
因为不是所有程序制作的安装包默认所在运行路径都具备写入权限,Windows通常是SHGetKnownFolderPath获取用户AppData目录,Linux则是getpwuid_r获取的用户家目录,所以支持调用main_ctx_init前自定义设置run_dir很重要。