RevelaOS/src/structures/ProcLib.ts
2024-01-16 05:00:41 +00:00

26 lines
804 B
TypeScript

import Kernel from '../kernel'
const ProcLib = {
findEmptyPID: function (kernel: Kernel) {
const r = kernel.processList.findIndex((p) => p === null)
return r !== -1 ? r : kernel.processList.length
},
cleanupProcess: function (kernel: Kernel, pid: number) {
const proc = kernel.processList
.filter((p) => p !== null)
.find((p) => p.pid === pid)
if (proc === undefined) throw new Error(`Process ${pid} not found.`)
console.group(`Killing process ${pid} (${proc.name})`)
document.dispatchEvent(new CustomEvent('app_closed', {
detail: {
token: proc.token
}
}))
kernel.processList.splice(pid, 1)
document.dispatchEvent(new CustomEvent('update_process', {}))
console.groupEnd()
console.groupEnd()
}
}
export default ProcLib