* Remove most unused WIN32 stuff.
[matthijs/ABM2.git] / ABM2 / Engine / Kernel.cpp
index f16fe06919b1e0a5264c8193a480fb02952a5f85..581b96370d7575914071f944d35376e0ae2f34ec 100755 (executable)
@@ -25,21 +25,13 @@ CKernel::~CKernel()
 \r
 int CKernel::Execute()\r
 {\r
-    MSG msg;\r
 \r
        while(taskList.size())\r
        {\r
                {\r
                        PROFILE("Kernel task loop");\r
 \r
-                       //DWORD starting_point = GetTickCount();\r
-\r
-        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))\r
-        {\r
-            TranslateMessage(&msg);\r
-            DispatchMessage(&msg);\r
-        }\r
-\r
+                       DWORD starting_point = GetTickCount();\r
 \r
                        std::list< CMMPointer<ITask> >::iterator it, thisIt;\r
                        for(it=taskList.begin();it!=taskList.end();)\r
@@ -62,8 +54,10 @@ int CKernel::Execute()
                                }\r
                        }\r
                        IMMObject::CollectGarbage();\r
-                       //DWORD end_point = GetTickCount();\r
-//                     Sleep(50 - (end_point-starting_point));\r
+                       DWORD end_point = GetTickCount();\r
+                       /* Sleep if we didn't use up too much time already */\r
+                       if (starting_point + 250 > end_point)\r
+                               Sleep(250 - (end_point-starting_point));\r
                }\r
 #ifdef _DEBUG\r
                CProfileSample::Output();\r
@@ -73,7 +67,7 @@ int CKernel::Execute()
        return 0;\r
 }\r
 \r
-bool CKernel::AddTask(CMMPointer<ITask> &t)\r
+bool CKernel::AddTask(const CMMPointer<ITask> &t)\r
 {\r
        if(!t->Start())return false;\r
 \r
@@ -88,7 +82,7 @@ bool CKernel::AddTask(CMMPointer<ITask> &t)
        return true;\r
 }\r
 \r
-void CKernel::SuspendTask(CMMPointer<ITask> &t)\r
+void CKernel::SuspendTask(const CMMPointer<ITask> &t)\r
 {\r
        //check that this task is in our list - we don't want to suspend a task that isn't running\r
        if(std::find(taskList.begin(),taskList.end(),t)!=taskList.end())\r
@@ -99,7 +93,7 @@ void CKernel::SuspendTask(CMMPointer<ITask> &t)
        }\r
 }\r
 \r
-void CKernel::ResumeTask(CMMPointer<ITask> &t)\r
+void CKernel::ResumeTask(const CMMPointer<ITask> &t)\r
 {\r
        if(std::find(pausedTaskList.begin(),pausedTaskList.end(),t)!=pausedTaskList.end())\r
        {\r
@@ -116,7 +110,7 @@ void CKernel::ResumeTask(CMMPointer<ITask> &t)
        }\r
 }\r
 \r
-void CKernel::RemoveTask(CMMPointer<ITask> &t)\r
+void CKernel::RemoveTask(const CMMPointer<ITask> &t)\r
 {\r
        if(std::find(taskList.begin(),taskList.end(),t)!=taskList.end())\r
        {\r
@@ -130,4 +124,4 @@ void CKernel::KillAllTasks()
        {\r
                (*it)->canKill=true;\r
        }\r
-}
\ No newline at end of file
+}\r