fix/clean-resource-on-exit (#1290)

This commit is contained in:
Louis 2024-01-02 17:04:38 +07:00 committed by GitHub
parent 1d902567f7
commit 67aa13610c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 6 deletions

View File

@ -3,6 +3,7 @@
*/
export class ModuleManager {
public requiredModules: Record<string, any> = {}
public cleaningResource = false
public static instance: ModuleManager = new ModuleManager()

View File

@ -19,6 +19,7 @@ import { handleAppIPCs } from './handlers/app'
import { handleAppUpdates } from './handlers/update'
import { handleFsIPCs } from './handlers/fs'
import { migrateExtensions } from './utils/migration'
import { dispose } from './utils/disposable'
app
.whenReady()
@ -37,14 +38,12 @@ app
})
})
app.on('window-all-closed', () => {
ModuleManager.instance.clearImportedModules()
app.quit()
app.once('window-all-closed', () => {
cleanUpAndQuit()
})
app.on('quit', () => {
ModuleManager.instance.clearImportedModules()
app.quit()
app.once('quit', () => {
cleanUpAndQuit()
})
function createMainWindow() {
@ -83,3 +82,13 @@ function handleIPCs() {
handleAppIPCs()
handleFileMangerIPCs()
}
function cleanUpAndQuit() {
if (!ModuleManager.instance.cleaningResource) {
ModuleManager.instance.cleaningResource = true
WindowManager.instance.currentWindow?.destroy()
dispose(ModuleManager.instance.requiredModules)
ModuleManager.instance.clearImportedModules()
app.quit()
}
}