]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Thread.hh
initial network stuff
[chaz/yoink] / src / Moof / Thread.hh
index 52a878a553d68ebf26d33320dfebb2494a9af457..3e0bd829a8affabd059f5b7b376779e7971e4fbf 100644 (file)
@@ -23,6 +23,7 @@
 
 namespace Mf {
 
+
 //
 // The detach function detaches a separate thread by calling 'func' with
 // the 'arg' parameter.
@@ -80,6 +81,41 @@ inline unsigned getThreadIdentifier(Thread thread)
 }
 
 
+class AsyncTask
+{
+public:
+
+       virtual ~AsyncTask() {}
+
+       virtual bool isDone() const = 0;
+
+       virtual void run() = 0;
+       virtual int wait() = 0;
+};
+
+class ThreadedTask
+{
+public:
+
+       ThreadedTask() :
+               mThread(0) {}
+
+       Thread thread() const { return mThread; }
+
+       int wait()
+       {
+               int code = waitOnThread(mThread);
+               mThread = 0;
+               return code;
+       }
+
+
+protected:
+
+       Thread mThread;
+};
+
+
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 class Mutex
This page took 0.019385 seconds and 4 git commands to generate.