home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / games / gi / c / tools / thread.hpp < prev   
Encoding:
C/C++ Source or Header  |  1993-04-23  |  2.3 KB  |  73 lines

  1. /*--------------------------------------------------------------------------*/
  2. /*                                                                          */
  3. /*   Main-Module   : none                                                   */
  4. /*                                                                          */
  5. /*   Version       : V1.00                                                  */
  6. /*                                                                          */
  7. /*   Date          : 15.10.92                                               */
  8. /*                                                                          */
  9. /*   Written       : MH                                                     */
  10. /*                                                                          */
  11. /*   Dependency    :                                                        */
  12. /*                                                                            */
  13. /*     Revision History :
  14.  
  15.     15.10.92    MH    Entfernen von PM-Threads
  16.     18.10.92    RF    erbt ERROR
  17.     19.10.92    RF    Funcs sind pascal
  18.     27.02.93    RF    DEF_STACKSIZE = 12k
  19.     15.04.93    MH  Portierung auf 32 Bit
  20.                                                                             */
  21. /*--------------------------------------------------------------------------*/
  22. #ifndef THREAD_INC
  23. #define THREAD_INC
  24.  
  25. #define INCL_PM
  26. #include <os2.h>
  27. #pragma hdrstop
  28. #define INCL_ERRTHREAD
  29. #include <errdef.h>
  30. #include <error.hpp>
  31.  
  32. #define DEF_STACKSIZE (30*1024)        // default stacksize
  33.  
  34. typedef void (APIENTRY *THREADFUNC) (ULONG);
  35.  
  36. class THREAD : public ERROR
  37.     {
  38.     public:
  39.  
  40.         THREAD  ();
  41.         THREAD  (THREADFUNC func, BOOL start=FALSE);
  42.         THREAD  (void *data, THREADFUNC func, BOOL start=FALSE);
  43.  
  44.         unsigned Start (THREADFUNC func=NULL, void *data=NULL);
  45.  
  46.         void Suspend    ();
  47.         void Resume        ();
  48.         void StackSize    (unsigned size)
  49.             {
  50.             stacksize = size;
  51.             }
  52.         BOOL     Running () {return running;};
  53.         BOOL     Started () {return started;};
  54.         TID        Tid        () {return tid;};
  55.         PID        Pid        () {return pid;};
  56.  
  57.     protected:
  58.         THREADFUNC        threadfunc;
  59.  
  60.         BOOL            running;
  61.         BOOL            started;
  62.         void            *data;
  63.  
  64.     private:
  65.  
  66.         TID                tid;
  67.         PID                pid;
  68.         unsigned        stacksize;
  69.     };
  70. //----------------------------------------------------------------------------
  71. #endif
  72.  
  73.