#pragma once #include #include #include "object/process.h" #include "scheduler/cleanup.h" class ProcessManager { public: // Initializes the ProcessManager // and stores it in the global variable. static void Init(); void InsertProcess(const glcr::RefPtr& proc); void RemoveProcess(uint64_t id); Process& FromId(uint64_t id); void InitCleanup(); void CleanupProcess(uint64_t pid); void CleanupThread(glcr::RefPtr thread); private: glcr::HashMap> proc_map_; ProcessCleanup cleanup; }; extern ProcessManager* gProcMan;