00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef THREAD_H_
00010 #define THREAD_H_
00011
00012 #include <vector>
00013
00014
00015
00016 class Thread {
00017
00018 public:
00019
00020
00021 Thread ();
00022
00023
00024 virtual ~ Thread ();
00025
00026
00027 virtual void start () = 0;
00028
00029 void setActive ();
00030 void setPassive ();
00031
00032
00033 private :
00034
00035 bool act;
00036 };
00037
00038 extern void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads);
00039
00040 extern void joinThreads (std :: vector <pthread_t *> & __ll_threads);
00041
00042 extern bool atLeastOneActiveThread ();
00043
00044
00045 extern unsigned numberOfActiveThreads ();
00046
00047
00048 #endif