fix/clean-resource-on-exit (#1290)
This commit is contained in:
parent
1d902567f7
commit
67aa13610c
@ -3,6 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
export class ModuleManager {
|
export class ModuleManager {
|
||||||
public requiredModules: Record<string, any> = {}
|
public requiredModules: Record<string, any> = {}
|
||||||
|
public cleaningResource = false
|
||||||
|
|
||||||
public static instance: ModuleManager = new ModuleManager()
|
public static instance: ModuleManager = new ModuleManager()
|
||||||
|
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import { handleAppIPCs } from './handlers/app'
|
|||||||
import { handleAppUpdates } from './handlers/update'
|
import { handleAppUpdates } from './handlers/update'
|
||||||
import { handleFsIPCs } from './handlers/fs'
|
import { handleFsIPCs } from './handlers/fs'
|
||||||
import { migrateExtensions } from './utils/migration'
|
import { migrateExtensions } from './utils/migration'
|
||||||
|
import { dispose } from './utils/disposable'
|
||||||
|
|
||||||
app
|
app
|
||||||
.whenReady()
|
.whenReady()
|
||||||
@ -37,14 +38,12 @@ app
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
app.on('window-all-closed', () => {
|
app.once('window-all-closed', () => {
|
||||||
ModuleManager.instance.clearImportedModules()
|
cleanUpAndQuit()
|
||||||
app.quit()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
app.on('quit', () => {
|
app.once('quit', () => {
|
||||||
ModuleManager.instance.clearImportedModules()
|
cleanUpAndQuit()
|
||||||
app.quit()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
function createMainWindow() {
|
function createMainWindow() {
|
||||||
@ -83,3 +82,13 @@ function handleIPCs() {
|
|||||||
handleAppIPCs()
|
handleAppIPCs()
|
||||||
handleFileMangerIPCs()
|
handleFileMangerIPCs()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function cleanUpAndQuit() {
|
||||||
|
if (!ModuleManager.instance.cleaningResource) {
|
||||||
|
ModuleManager.instance.cleaningResource = true
|
||||||
|
WindowManager.instance.currentWindow?.destroy()
|
||||||
|
dispose(ModuleManager.instance.requiredModules)
|
||||||
|
ModuleManager.instance.clearImportedModules()
|
||||||
|
app.quit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user