summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorPixel <pixel@nobis-crew.org>2011-11-17 08:54:14 -0800
committerPixel <pixel@nobis-crew.org>2011-11-17 08:54:14 -0800
commite435e4bb3c0744acf5b36c6e441d309d10af1257 (patch)
treebc7bd9e8910f63bc269926be3e1f8382a8473a7f /includes
parent250b303a9e36f1ddcb3e3b28a130a8674839a3a7 (diff)
Introducing the fact we need a more efficient stack allocator, and that it's to be performed from the task manager.
Diffstat (limited to 'includes')
-rw-r--r--includes/Task.h3
-rw-r--r--includes/TaskMan.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/includes/Task.h b/includes/Task.h
index 9244347..5865831 100644
--- a/includes/Task.h
+++ b/includes/Task.h
@@ -135,8 +135,9 @@ class Task {
}
TaskMan * getMyTaskMan() { return m_taskMan; }
private:
- size_t stackSize() { return 128 * 1024; }
+ static size_t stackSize() { return 64 * 1024; }
void setup(TaskMan * taskMan);
+ static bool needsStacks();
void switchTo();
static void CALLBACK coroutineTrampoline(void *);
void coroutine();
diff --git a/includes/TaskMan.h b/includes/TaskMan.h
index 6d005ef..b944f09 100644
--- a/includes/TaskMan.h
+++ b/includes/TaskMan.h
@@ -35,6 +35,8 @@ class TaskMan {
void stopMe() { m_stopped = true; }
private:
static void registerTask(Task * t, Task * stick);
+ void * getStack();
+ void freeStack(void * stack);
void addToPending(Task * t);
#ifndef _WIN32
coro_context m_returnContext;