26 lines
804 B
TypeScript
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
|