Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TThreadImp.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/thread:$Id$
0002 // Author: Victor Perev   10/08/97
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TThreadImp
0013 #define ROOT_TThreadImp
0014 
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TThreadImp                                                           //
0019 //                                                                      //
0020 // This class implements threads. A thread is an execution environment  //
0021 // much lighter than a process. A single process can have multiple      //
0022 // threads. The actual work is done via the TThreadImp class (either    //
0023 // TPosixThread or TWin32Thread).                                       //
0024 //                                                                      //
0025 //////////////////////////////////////////////////////////////////////////
0026 
0027 #include "TObject.h"
0028 
0029 class TThread;
0030 
0031 class TThreadImp : public TObject {
0032 public:
0033    TThreadImp() { }
0034    virtual ~TThreadImp() { }
0035 
0036    virtual Int_t  Join(TThread *th, void **ret) = 0;
0037    virtual Long_t SelfId() = 0;
0038    virtual Int_t  Run(TThread *th, const int affinity = -1) = 0;
0039 
0040    virtual Int_t  Kill(TThread *th) = 0;
0041    virtual Int_t  SetCancelOff() = 0;
0042    virtual Int_t  SetCancelOn() = 0;
0043    virtual Int_t  SetCancelAsynchronous() = 0;
0044    virtual Int_t  SetCancelDeferred() = 0;
0045    virtual Int_t  CancelPoint() = 0;
0046    virtual Int_t  CleanUpPush(void **main, void *free,void *arg) = 0;
0047    virtual Int_t  CleanUpPop(void **main, Int_t exe) = 0;
0048    virtual Int_t  CleanUp(void **main) = 0;
0049 
0050    virtual Int_t  Exit(void *ret) = 0;
0051 
0052    ClassDefOverride(TThreadImp,0)  // ThreadImp class
0053 };
0054 
0055 #endif