muse254 / hermes

hermes watches for file changes in the project directory given and runs or builds or tests the project for every change made
MIT License
0 stars 0 forks source link

Spawned processes leak resources after 'being killed' #1

Closed muse254 closed 5 years ago

muse254 commented 5 years ago

When changes are detected and a new process is spawned, the previous process' resources have not been cleaned. In my case its the port number. Sth of a zombie process still lingers on =( Still looking into it. I'd like help or insight.

itsyaasir commented 5 years ago

Do you think a simple cleanup code of the previous project will Suffice.

muse254 commented 5 years ago

In theory doing Kill() kills the process and Release() should release any resources that were bound to it. The process is unusable afterwards and an exit code for it can also be extracted. I assume it has been killed. Probably that's where the bug comes in?! In one case the process is killed yet on another it lives on as a 'zombie' process until hermes exits. At least the in my case the tcp address for the server. 'address already in use' error comes up.

On Mon, Sep 2, 2019, 12:52 Yasir Shariff notifications@github.com wrote:

Do you think a simple cleanup code of the previous project will Suffice.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/muse254/hermes/issues/1?email_source=notifications&email_token=AJIVFH6J7Y4QNRDNVRVGYUDQHTO5HA5CNFSM4IRS2P42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5VKUNY#issuecomment-527084087, or mute the thread https://github.com/notifications/unsubscribe-auth/AJIVFHYO7RJHXRXYQFGMFFLQHTO5HANCNFSM4IRS2P4Q .

muse254 commented 5 years ago

Bingo. go run internally does a go build -o prog and ./prog, so when you kill the go run process, you don't kill it's subprocess ./prog.

I'll trying doing go build prog and ./prog for 'go run' and see how it goes

muse254 commented 5 years ago

Works like a charm @Majorkid