Electron JS app.quit() hang on Linux and Mac
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Stack tecnologico
- csharp, electron, javascript
- Ambito
- desktop
Direzione di ricerca
Riproduci il blocco con il modulo più semplice nella cartella examples del repository e nella demo collegata daniacedue/electron-nodeapi. Parti dal percorso app.quit() di Electron e dalla pulizia del modulo AOT .NET/C#, confrontando il comportamento su macOS e Linux. Il lavoro è completo quando l’app si chiude correttamente dopo aver caricato il modulo, consentendo a electron-updater di avviare un aggiornamento senza terminare forzatamente il processo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hello,
If I use this technology in an Electron JS desktop application to load a C# AOT or .Net module then on Mac OS (and also Linux) the call to app.quit() hangs and the app does not closes normally, needing to do a force quit from Activity Monitor.
It happens with the simplest possible module found in your examples folder, as it is too much code I have made a demo app here:
[daniacedue/electron-nodeapi] (https://github.com/daniacedue/electron-nodeapi)
As a workaround I have tried brutally closing the process after some time or in the Electron's app.quit() handler by doing process.kill(process.pid, "SIGKILL"); but this is problematic because I need electron-updater npm package to be able to gracefully close in order to kick-off an update.
The problem is quite complex, I have also tried asking some chatbots to figure out what is happening by interpreting some stack traces and spindumps and it has something to do with low-level NAPI calls freezing the main process when doing the cleanup.
I have tried numerous "black box" possible fixes from both C# and JS (like explicit "destroy" function triggering dispose pattern because I was doubting the finalizers being the culpit) but without success.
Thanks!
- Lingua principale
- C#
- Stelle
- 783
- Fork
- 80
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/node-api-dotnet
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
microsoft/node-api-dotnet#484 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/node-api-dotnet#481 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/node-api-dotnet#486 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
microsoft/node-api-dotnet#479 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/node-api-dotnet#475 · 1 commento ·
Tutte le issue di microsoft/node-api-dotnet
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nightscout/nocturne#1379 ·
-
release-notes in .NET 11 RC2 Apertapriority-0
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
StackExchange/StackExchange.Redis#3249 ·
-
[Feat] 조합 영역 구분선 개선 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100