From 63cb8ca24c0d4003343340bb8413b7f84de1a6a3 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 5 Sep 2011 18:44:43 -0400 Subject: Moved signal/thread/mode checking to use signal pipes --- include/threadengine.h | 41 +++++++++++------------------------------ 1 file changed, 11 insertions(+), 30 deletions(-) (limited to 'include/threadengine.h') diff --git a/include/threadengine.h b/include/threadengine.h index 20e3c81eb..06c4900a4 100644 --- a/include/threadengine.h +++ b/include/threadengine.h @@ -12,36 +12,9 @@ typedef pthread_mutex_t MutexHandle; typedef pthread_cond_t CondHandle; #endif -class ThreadEngine; class Thread; -extern CoreExport ThreadEngine threadEngine; - -class CoreExport ThreadEngine -{ - public: - /* Vector of threads */ - std::vector threads; - - /** Threadengines constructor - */ - ThreadEngine(); - - /** Threadengines destructor - */ - ~ThreadEngine(); - - /** Start a new thread - * @param thread A pointer to a newley allocated thread - */ - void Start(Thread *thread); - - /** Check for finished threads - */ - void Process(); -}; - -class CoreExport Thread : public Extensible +class CoreExport Thread : public Pipe, public Extensible { private: /* Set to true to tell the thread to finish and we are waiting for it */ @@ -71,14 +44,22 @@ class CoreExport Thread : public Extensible */ void Exit(); + /** Launch the thread + */ + void Start(); + /** Returns the exit state of the thread * @return true if we want to exit */ bool GetExitState() const; - /** Called to run the thread, should be overloaded + /** Called when this thread should be joined to + */ + void OnNotify(); + + /** Called when the thread is run. */ - virtual void Run(); + virtual void Run() = 0; }; class CoreExport Mutex -- cgit