Open
Description
TLDR; each vscode instance runs a nimlangserver process, each nim tab file runs two nimsuggest processes, when vscode is closed nimlangserver is not killed and one nimsuggest goes defunct. Repeatable steps until OOM
OS
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"
VSCode via official repo .deb
$ type code
code is /usr/bin/code
$ code --version
1.86.0
05047486b6df5eb8d44b2ecd70ea3bdf775fd937
x64
nimlangserver installed/upgraded via nimble
$ type nimlangserver
nimlangserver is /home/arkanoid/.nimble/bin/nimlangserver
$ nimlangserver --version
1.2.0
nimsuggest installed/upgraded via nimble
$ type nimsuggest
nimsuggest is /home/arkanoid/.nimble/bin/nimsuggest
$ nimsuggest --version
Nim Compiler Version 2.0.2 [Linux: amd64]
Compiled at 2023-12-15
Copyright (c) 2006-2023 by Andreas Rumpf
git hash: c4c44d10df8a14204a75c34e499def200589cb7c
active boot switches: -d:release -d:danger --gc:markAndSweep
minimal project (karax frontend, prologue backend, atlas scaffold): https://github.com/arkanoid87/nim_vscode_playground
Test scenario setup:
$ git clone https://github.com/arkanoid87/nim_vscode_playground
$ cd nim_vscode_playground
$ atlas install vscode_playground.nimble
$ nim frontend
$ nim backend
(optional nim run_backend)
Monitor processes (optional) run in different windows:
`watch -c "ps -ae | grep nimlangserver" `
`watch -c "ps -ae | grep nimsuggest"`
killall nimlangserver && killall nimsuggest && killall code && code .
: nimlangserver =+ 1- open new tab for
src/front/front.nim
: nimsuggest += 2 - open new tab for
src/back/back.nim
: nimsuggest += 2 - close vscode (ensure code process not running)
- final: nimlangserver = 1, nimsuggest = 4 (one is )
- reopen vscode
code .
nimlangserver =+ 1 - open new tab for
src/front/front.nim
: nimsuggest += 2 - open new tab for
src/back/back.nim
: nimsuggest += 2 - final: nimlangserver = 2, nimsuggest = 8 (2 are )
Metadata
Metadata
Assignees
Labels
No labels