00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_P_THREAD_H
00027 #define NL_P_THREAD_H
00028
00029 #ifdef NL_OS_UNIX
00030
00031 #include "nel/misc/types_nl.h"
00032 #include "nel/misc/thread.h"
00033 #include <pthread.h>
00034
00035
00036 namespace NLMISC {
00037
00038
00045 class CPThread : public IThread
00046 {
00047 public:
00048
00050 CPThread( IRunnable *runnable );
00051
00052 virtual ~CPThread();
00053
00054 virtual void start();
00055 virtual void terminate();
00056 virtual void wait();
00057 virtual bool setCPUMask(uint64 cpuMask);
00058 virtual uint64 getCPUMask();
00059 virtual std::string getUserName();
00060
00061 virtual IRunnable *getRunnable()
00062 {
00063 return Runnable;
00064 }
00065
00067 IRunnable *Runnable;
00068
00069 private:
00070 bool _Started;
00071 pthread_t _ThreadHandle;
00072
00073 };
00074
00081 class CPProcess : public IProcess
00082 {
00083 public:
00084
00085 virtual uint64 getCPUMask();
00086 };
00087
00088 }
00089
00090
00091 #endif // NL_OS_UNIX
00092
00093 #endif // NL_P_THREAD_H
00094
00095